线性基
L_0_Forever_LF
一个热爱OI的OIer
展开
-
BZOJ3105: [cqoi2013]新Nim游戏
线性基题意说前两回合双方都只能拿若干堆或不拿但不能拿完,所以要必胜就需要使第一轮拿完后剩下的堆的集合里没有一个子集的异或和为0 然后就可以线性基+贪心,使剩下集合和最大就是第一次拿的最少的解code:#include<set> #include<map> #include<deque> #include<queue> #include<stack> #include<cmath> #include原创 2017-01-13 16:25:38 · 450 阅读 · 0 评论 -
BZOJ2460: [BeiJing2011]元素
线性基例题 不会线性基的去学一下,这里不再介绍题目要求一个值最大的集合是任意一个子集的异或和都不为0 先按值排序,然后按顺序放进集合,一个数如果和之前的一些数异或和为0就跳过他,因为如果要把这个数放进去,那就要把之前的某个数拿出来,而这样交换之后集合能异或出的数是不会变的,和却变小了code:#include<set> #include<map> #include<deque> #include原创 2017-01-13 09:58:23 · 523 阅读 · 0 评论 -
BZOJ1923: [Sdoi2010]外星千足虫
这题是线性基吧,把这些方程组看成数在二进制下的表示,如果他们能异或出2^0,2^1~2^n-1,那么就是唯一解 bitset优化code:#include<set> #include<map> #include<deque> #include<queue> #include<stack> #include<cmath> #include<ctime> #include<bitset> #inclu原创 2017-04-26 21:05:35 · 466 阅读 · 0 评论 -
BZOJ2115: [Wc2011] Xor
因为一个大环可以由很多个小环拼在一起xor得到,所以我们可以只关注小环 最后的答案一定是一条1到n的路径,路径上挂了很多个环,这个路径我们其实可以任取一条1到n的路径,因为若1到n有多条路径,那这些路径间也组成了环,我们选定随意一条路径都可以通过xor环得到任意一条路径 对于一个环,如果他不在路径上,事实上我们走到它,走完这个环,走回路径上,来回路径的异或值为0,也能单独取到这个环,因为是无向...原创 2017-01-13 15:29:04 · 1531 阅读 · 0 评论 -
BZOJ3569: DZY Loves Chinese II
在线判无向图删掉一些边后是否还连通 我们建出这个无向图的一棵生成树,如果删掉一些边后这个图不连通,一定存在某一条树边,他被删去且覆盖他的所有非树边也被删去 于是我们给每条非树边随机一个权值,每条树边的权值为所有覆盖他的非树边的权值的异或和,那么“他被删去且覆盖他的所有非树边也被删去”对应的就是删去的边权中存在一个子集的异或和为0 于是每次我们对删去的边权建一个线性基,判一下有没有异或和为0的...原创 2018-04-27 10:06:38 · 240 阅读 · 0 评论 -
BZOJ4671: 异或图
直接算连通的方案不好算,但要求某些点之间不连通的很好算,注意到图的点数不多,考虑容斥 用O(bell数)的复杂度枚举这个图的所有集合划分,计算每个不同集合的点一定不在一个联通块,同一个集合内的点没有限制(即不同集合间没有边)的方案数,把集合间的边编号,若图gi含有边ei,就在第ei位有个1,就是算这些数有多少个子集异或和为0,可以用线性基算这个方案数,然后设当前集合划分把n个点分成了i个集合,这...原创 2018-04-27 10:43:09 · 482 阅读 · 0 评论