这是本文档旧的修订版!
来源:CF1401F
tag:线段树。
概述:给出 $2^n$ 大小的数组,要求支持一些操作。包括单点修改、区间查询、将 $2^k$ 大小的块两两配对左右交换、将 $2^k$ 大小的块内部翻转。
答案:应该是有一个 $O(nq)$ 的异或一个值的做法也很值得看一下。但线段树做法的话还蛮好理解的,交换和翻转操作其实都可以归为对线段树的一些层交换左右子树,记录每层是否需要交换,之后就单点修改区间查询,根据是否交换选择进入左还是右子树即可。
comments:有趣的转换。