线性基
线性基
王江奎
这个作者很懒,什么都没留下…
展开
-
UVALive - 8512——线段树维护线性基
【题目描述】UVALive - 8512XOR【题目分析】这种区间+线性基的问题我们可以考虑用线段树维护,线性基的合并的话就直接暴力合并找到所在区间的线性基后再查找最大的数,我看网上的博客要说消除k的影响什么的,我觉得没有什么必要,直接将初值设置为k,然后从高位向低位找,如果异或了后值会变大就异或,觉得没有什么大问题。还有就是线段树维护的时候函数的返回值最好不要设置成线性基,会RE,具体的...原创 2019-08-08 15:31:26 · 161 阅读 · 0 评论 -
BZOJ 2844 | HYSBZ - 2844albus就是要第一个出场——线性基
【题目描述】BZOJ 2844 | HYSBZ - 2844albus【题目分析】题目的意思大概是给一个数列,他有2n个子集,每个子集的元素的异或和构成新的一个数列,排序后问数字Q在这个序列里面的下标。假如题目是求所有元素的异或和构成一个集合就好弄了,我们可以根据求第K大反过来求他在集合里面的下标。int find_ans(int q) { int num=0; ...原创 2019-08-09 16:06:12 · 132 阅读 · 0 评论 -
BZOJ2115XOR——线性基
【题目描述】BZOJ2115XOR——线性基【题目分析】这道题看完以后很懵逼,人家要是走的很复杂呢?各种绕来绕去怎么办?首先我们应该注意到一个很明显的道理:重复的路径会和自身抵消,所以我们大可以随便跑,只要再跑回来就对答案没有影响。因此,有影响的只有选择的路径和经过的环,因为环是可以回到已经经过的点而不抵消的。而且只要我们愿意我们可以去任何一个环(假如环有一个起点x,我们有一条从1到n的...原创 2019-08-06 10:03:34 · 171 阅读 · 0 评论 -
线性基入门
今天学习了神奇的线性基,主要是在解决异或问题时比较有用。假如我们的数字的二进制在x位上都是1(这里指所有的数字总共),那么我们线性基的集合就是x个数字,对应的他们最高位的1分别出现在这x个位置,我们还可以通过重建将他们变成二进制数字只含有一个1的集合(即他们每一个都是222的幂),然后进行异或一定能出现原本所有的数字以及他们之间相互异或的所有数字(所谓的异或无非是0到1或者1到0的变化,只要有一...原创 2019-08-06 13:49:00 · 163 阅读 · 0 评论