位运算小规律(待添加......)

发布时间 2023-11-17 20:37:33作者: spiderflower

1.关于异或前缀和

假如题目给你个数组 a[n],然后有 a[n] = b[n-1]^b[n] 的规律,让我们求b数组的值,对于这类题目来说,我们知道要求a数组的前缀异或和,这样的话 假如c[n]是前缀异或数组,那么我们就很容易的得出

c[i] = b[0]^b[i] 这样的话 c数组我们可以求出,那么只要求出b[0],那问题就迎刃而解,对于此来说,还给你个条件,b数组是0~n-1的排列这样的话,那么b数组的范围知道了,c数组也知道,我们就到判断b[0]的二进制每一位是多少,那我们就看b数组里面(0~n-1)和c数组的每一位是1的个数,如果个数相等那么b[0]对应的位数就是0,否则是1( 重点)。

例题:Problem - D - Codeforces  大佬题解:Educational Codeforces Round 157 (Rated for Div. 2)(A~D)(多维map/位运算) - 知乎 (zhihu.com)