摘要: 题意:求子区间异或和,要求区间长度在l到r之间,并且为偶数 题解:对于每一位算贡献,可以分奇偶来记录,计算的时候只加上奇偶性相同的就保证了为偶数,从大于l的点开始每次++,从大于r的点每次--,记录二进制上所有权值和 #include<bits/stdc++.h> #define fi first 阅读全文
posted @ 2017-11-25 22:00 walfy 阅读(313) 评论(0) 推荐(0) 编辑
摘要: 题意:就是求所有子区间的异或和的和 题解:就是算每一位对结果的贡献(最近好像遇到很多次这种题目),先前缀异或,从左向右扫记录二进制前缀的1,0个数,xor[i]==xor[j]^1的时候就加上这一位的权值 #include<bits/stdc++.h> #define fi first #defin 阅读全文
posted @ 2017-11-25 20:54 walfy 阅读(383) 评论(1) 推荐(0) 编辑
摘要: 这是补的知识点,按先序遍历的顺序建立dfs序,用左右两个值代表整个区间,因为dfs序最重要的特点就是子树的区间是连续的 建立线段树时,需要用重新标过的 下标来建立 #pragma comment(linker, "/STACK:1024000000,1024000000") #include<map 阅读全文
posted @ 2017-11-25 01:42 walfy 阅读(269) 评论(0) 推荐(0) 编辑