文章目录
题目链接:
https://www.lydsy.com/JudgeOnline/problem.php?id=4017
https://acm.njupt.edu.cn/problem/BZOJ4017
第一问:求所有区间异或的和
x o [ i ] xo[i] xo[i]表示前 i i i个数的异或值, s u m [ i ] sum[i] sum[i]表示前 i i i个数的和
第一问:用 c n t [ k ] [ 0 ] , c n t [ k ] [ 1 ] cnt[k][0],cnt[k][1] cnt[k][0],cnt[k][1]表示第 k k k位 0 0 0的个数和 1 1 1的个数,朴素的做法是枚举 L L L和 R R R要 O ( n 2 ) O(n^2) O(n2)
我们先枚举 R R R,如果 s u m [ R ] sum[R] sum[R]的第 k k k位是 1 1 1,要是有个 s u m [ L − 1 ] sum[L-1] sum[L−1]的第 k k k位是