线性基
FuTaimeng
好像有人说我冰雪聪明~~~
展开
-
线性基
线性基1、线性基: 若干数的线性基是一组数a1,a2,…an,其中ax的最高位的1在第x位。 通过线性基中元素xor出的数的值域与原来的数xor出数的值域相同2、线性基的构造法: 对每一个数p从高位到低位扫,扫到x位为1时,若ax不存在,则ax=p并结束此数的扫描,否则令p= p xor ax。3、查询: 用线性基求这组数xor出的最大值:从高往低扫ax,若异或上ax使答案变大,则异或。4转载 2017-05-29 19:29:42 · 289 阅读 · 0 评论 -
BZOJ4184: shallot
BZOJ4184: shallot线性基·线段树题解:又是一道神题! 然而蒟蒻只能抄题解,还抄漏了一句。。。一个数字的出现时间是一段区间[l,r][l,r],可以开一棵线段树,把[l,r][l,r]对应的线段树节点上的vector里加上这个数。 最后dfs一次,参数传一个线性基(不是引用),把当前点vector里的都加进去,再往下dfs。 这样到达叶节点的线性基就包含了这个点时存在的数,输出一原创 2017-08-24 18:16:56 · 410 阅读 · 0 评论 -
BZOJ2460: [BeiJing2011]元素
BZOJ2460: [BeiJing2011]元素线性基题解:线性基网上有很多讲解了,不再赘述。明白了线性基之后这题就是裸题了。 为了价值最大,按照价值排个序,先插入价值大的即可。Code:#include <algorithm> #include <iostream> #include <cstring> #include <cstdio> using namespace std; typede原创 2017-08-24 14:26:27 · 190 阅读 · 0 评论 -
BZOJ4568: [Scoi2016]幸运数字
BZOJ4568: [Scoi2016]幸运数字线性基·倍增·LCA题解:抑或和最大的问题显然要用到线性基。本题就直接倍增维护线性基,合并出答案即可。线性基的合并就是一个插入到另一个中。有一点小细节就是lb[i][j]lb[i][j]中维护的是从i到i的2j2^j级祖先的线性基,左开右闭,也就是不包括i本身的。因此查lca(a,b)lca(a,b)的时候先把a和b的插入进去。Code:#includ原创 2017-08-24 15:19:26 · 239 阅读 · 0 评论