![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
线性基
henucm
那就再努力一点吧
展开
-
E. Duff as a Queen线段树区间修改+线性基
传送门 题意:给你一个数组,有两种操作,一种区间xor一个值,一个是查询区间xor的结果的种类数 对于一个给定的区间,我们可以通过求解线性基的方式求出结果的种类数,而现在只不过将其放在线段树上维护区间线性基。 #include <bits/stdc++.h> using namespace std; struct L_B { long long d[31]; ...原创 2019-11-02 15:27:05 · 335 阅读 · 0 评论 -
F. Ivan and Burgers 前缀线性基
传送门 题意:首先输入n,代表当前有n个数,然后再输入m,代表m次询问,每一次询问是询问区间[l,r],这段区间内的数的最大异或值。 思路:处理出来一个前缀线性基,记录线性基上该位置是在原序列的哪个位置,求值的时候在第r个线性基上找,如果位置>=l则是合法的。如果有两个相同的数在同一位,遇到这种情况则用贪心的想法,如果在同一位上明显原序列越大的数越优,因为如果把原序列小的留下,则区间长度...原创 2019-11-02 12:52:13 · 343 阅读 · 0 评论 -
hihocoder#1727 : 区间表示 线性基合并+线段树区间查询 端点更新
传送门 中文题。 思路:判断2个异或组成的数的集合的关系,就要利用到线性基的知识。如果1个线性基包含另一个线性基,那么另一个线性基里的任意元素一定能被这个线性基表示出来。其它的就是利用线段树维护线性基了。(不过我代码跑的速度有点慢~) #include<iostream> #include<algorithm> #include<cmath> #incl...原创 2019-11-01 17:14:38 · 401 阅读 · 0 评论 -
ACM-ICPC 2017 西安赛区现场赛 A. XOR线段树 + 线性基合并
传送门 题目大意:初始有一个序列a,有q个询问,每次询问 k | [l,r] 区间内子集异或的值的最大值是多少。 思路:根据题意,选取一部分值得到异或最大值,可以想到线性基,但是最后要OR上k,所以要消除k对其影响,我们就把每个数转化成二进制,然后将k为1的位置对于每个数其位置就变为0,这样就可以消除其k的影响了,最后在OR上k变回来,即为正确答案。比如数a[i]=6(110) ,k = 4(...原创 2019-10-31 23:21:38 · 340 阅读 · 0 评论 -
Wannafly挑战赛14 E 无效位置 并查集+线性基
传送门 题意:给你n个数字,n个消除位置的顺序,问每次消除前不包含无效位置的区间的异或和的最大值。 题解:我们反向加入数字,那么每次会和pos-1与pos+1的区间合并,我们通过线性基记录每个位置的情况,通过并查集合并,查询合并完的线性基的最大异或和,就可以了。 #include<iostream> #include<cstring> #include<cma...原创 2019-10-30 23:35:38 · 268 阅读 · 0 评论 -
hdu6579 Operation 前缀线性基
传送门 题意:两个操作,1个是求【l,r】区间子序列的最大异或和,另一个是在最后面添加一个数。 如果题目简化成求【1,,i】的最大异或和,那么该怎么想呢.... 当然是处理出来一个前缀线性基。那么如何求一个区间呢.... 那就处理前缀线性基的时候记录线性基上该位置是在原序列的哪个位置,求值的时候在第r个线性基上找,如果位置>=l则是合法的。 可是这样想有点怪怪的。 如果有两个相同...原创 2019-10-28 23:15:49 · 396 阅读 · 0 评论 -
线性基 (暂时先挖个坑)
定义 设数集T 的值域范围为[1,2n−1]。 T的线性基是T的一个子集A={a1,a2,a3,...,an}。 A中元素互相xor所形成的异或集合,等价于原数集T的元素互相xor形成的异或集合。 可以理解为将原数集进行了压缩。 性质 1.设线性基的异或集合中不存在0。 2.线性基的异或集合中每个元素的异或方案唯一,其实这个跟性质1是等价的。 3.线性基二进制最高位互不相同。 4.如果线性...原创 2019-05-24 01:18:45 · 393 阅读 · 0 评论 -
BZOJ 2460(线性基)
题意:一个物品有两个属性,a和b。现在有很多这样的物品,要求从中取任意个,使得取出的物品中,任意几个物品的属性a的异或和不为0,同时满足b的和最大。 首先,满足b的和最大,所以显然要按照b进行排序,首先选取b大的。然后就是满足a的异或和不为0。这里根据线性基的性质,线性基里面任意几个基底的异或值不为0,所以只要能够成功添加入线性基里面的向量,都可以直接满足这个要求,把其对应b的值加入结果。一直尝...原创 2019-05-28 00:10:24 · 304 阅读 · 0 评论 -
洛谷P4839 P哥的桶 线段树+线性基
传送门 题意:N个操作,第K个桶放一个X,查询L到R区间的桶任意数的异或最大值。 P哥时不时地会找新女朋友,并把新找的女朋友丢进某个桶里面。我们用 1 k x 来表示P哥找了一个颜值为x的女朋友,并且丢进了k号桶里面 P哥每天晚上需要在特定的桶里面找一些女朋友观赏。我们用 2 l r 来表示P哥在l号桶到r号桶之间找女朋友。P哥希望观赏的女朋友颜值异或和尽可能大。 #include<...原创 2019-08-09 13:02:12 · 429 阅读 · 0 评论 -
2019牛客暑期多校训练营(第四场) B xor 线性基求交+线段树
传送门 题意:对于一个集合,若该集合的某个子集的异或和等于x,则称该集合可以“表示”x,给定个n个集合和m次询问,每次询问给定l,r,x,表示询问对于任意i∈[l,r] 第i个集合中的数能否表示x。1≤n,m≤50000 。 大佬题解 #include<iostream> #include<cstring> #include<cmath> #includ...原创 2019-08-07 17:44:00 · 538 阅读 · 0 评论