线性基
weixin_44019404
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
P4301 [CQOI2013] 新Nim游戏
nim游戏的sg函数sg[x]=xsg[x]=xsg[x]=x,故,先手必败的条件是sg[a[1]]xorsg[a[2]]..xorsg[a[n]]==0sg[a[1]]xorsg[a[2]]..xorsg[a[n]]==0sg[a[1]]xorsg[a[2]]..xorsg[a[n]]==0故,我们需要第三次开始时,sg函数不为零。也即是找到一个集合,使得他的异或值不为零。我们采用线性基插入,无法插入时表示,异或值为零。又因为要找最小值,我们就需要将线性基所找到的集合拥有最大的权值,故排序后,从后往前插入原创 2020-07-08 11:13:17 · 145 阅读 · 0 评论 -
P4570 [BJWC2011]元素
首先线性基的性质,当向量个数和总的个数相等的时候,不会出现0向量。也就是化成对角矩阵后,对角线上有元素并且全部为1。 这道题目要求最大值,首先我们可以进行排序。然后从小到大贪心的进行选取。而因为,线性基的性质,如果插入了一个向量,会使得后面有向量无法插入,这样影响的最多一个向量。也就是,当我选择权值更大的向量的时候,假设该向量插入的是第i个,那么后面的向量,权值比他更小,若因为该向量无法插入,那么说明这第i位是1,如果插入权值的更小这个向量,不会使得问题变得更优,因为线性基中第i位仍然有向量,后续向量仍然无原创 2020-07-07 22:46:08 · 159 阅读 · 0 评论 -
P3292 [SCOI2016]幸运数字
lca倍增的途中,merge一下线性基。注意线性基是从自己开始,而倍增数组fa[i][0]等于father,意味着,线性基倍增的区间是左闭右开的,fa数组是左闭右闭 #include<iostream> #include<cstring> #include<algorithm> #include<cmath> #include<cstdlib> #include<climits> #include<stack> #inclu原创 2020-07-07 21:57:00 · 176 阅读 · 0 评论 -
P4869 albus就是要第一个出场
#include<iostream> #include<cstring> #include<algorithm> #include<cmath> #include<cstdlib> #include<climits> #include<stack> #include<vector> #include<queue> #include<set> #include<bitset> #原创 2020-07-07 16:42:31 · 133 阅读 · 0 评论 -
P3812 【模板】线性基
#include<iostream> #include<cstring> #include<algorithm> #include<cmath> #include<cstdlib> #include<climits> #include<stack> #include<vector> #include<queue> #include<set> #include<bitset> #原创 2020-07-07 16:41:47 · 133 阅读 · 0 评论
分享