![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
线性基
里阿奴摩西
这个作者很懒,什么都没留下…
展开
-
[线性基 树链剖分 线段树 || ST表 || 点分治] BZOJ 4568 [Scoi2016]幸运数字
这个东西链剖之后就是个裸的区间线性基,是可以暴力合并的O(log2n)O(\log ^2 n) 所以暴力线段树是 O(nlog4n)O(n\log ^4n) 改成ST表是 O(nlog3n)O(n\log ^3n) 而如果点分的话 应该是O(nlog2n)O(n\log ^2n)#include<cstdio> #include<cstdlib> #include<algorithm> #in原创 2017-07-01 22:06:10 · 543 阅读 · 0 评论 -
[高斯消元 线性基] BZOJ 2115 [Wc2011] Xor
任意两条路径的和为一个环 任取一条1-N的路,找一个环与其XOR和最大 莫队 Orz #include #include #include using namespace std; typedef long long ll; inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if原创 2016-07-06 17:44:36 · 277 阅读 · 0 评论 -
[CDQ分治 线性基] BZOJ 4184 shallot
代码应该都看得懂 #include #include #include #include #include #include #define cl(x) memset(x,0,sizeof(x)) using namespace std; typedef pair abcd; inline char nc() { static char buf[100000],*p1=buf,*p2原创 2016-07-12 19:34:11 · 619 阅读 · 0 评论 -
[高斯消元 线性基 树 记数] BZOJ 2322 [BeiJing2011]梦想封印
删边变加边 如果加的是非树边 相当于加了一个环 加入线性基中 如果加入的是树边 就dfs扩展树 两条链是等价的 相当于 他们用线性基消过后是一样的 用set维护 解是不等价链的个数*1 减一是要去掉0 #include #include #include #include using namespace std; typedef long long ll; inline c原创 2016-07-06 22:57:49 · 713 阅读 · 1 评论 -
[高斯消元 线性基] BZOJ 4269 再见Xor
这就很水了 #include #include #include using namespace std; typedef long long ll; inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=(p1=buf)+fread(buf,1,100000,stdin)原创 2016-07-06 17:45:31 · 477 阅读 · 0 评论 -
[高斯消元 线性基 贪心 拟阵 逆元] BZOJ 4004 [JLOI2015]装备购买
不是很懂拟阵那一套理论 #include #include #include using namespace std; typedef long long ll; inline char nc() { static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=(p1=buf)+fread(buf,1,100000原创 2016-07-06 17:37:54 · 412 阅读 · 0 评论 -
[高斯消元 线性基 贪心 拟阵] BZOJ 3105 [cqoi2013]新Nim游戏
第一次拿完后,要使剩下的火柴中不存在异或和为0的子集,且让子集和最大 求线性无关子集算术和最大值 证明是个拟阵 但我不会拟阵 记结论吧... #include #include #include #include using namespace std; typedef long long ll; inline char nc(){ static原创 2016-07-06 17:30:13 · 532 阅读 · 0 评论 -
[高斯消元 线性基 贪心 拟阵] BZOJ 2460 [BeiJing2011]元素
基本同BZOJ3105 #include #include #include #include using namespace std; typedef long long ll; typedef pair abcd; inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=原创 2016-07-06 17:33:04 · 910 阅读 · 0 评论 -
[高斯消元 线性基 二进制拆分] BZOJ 2844 albus就是要第一个出场
和hdu3949刚好相反啦 记得特判0 还是一个结论 异或值有1 #include #include #include using namespace std; typedef long long ll; inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=(p1=b原创 2016-07-06 17:25:47 · 368 阅读 · 0 评论 -
[高斯消元 线性基 二进制拆分] HDU 3949 XOR
意识流的记一个结论就好了 将K二进制拆分什么的 不难想 注意特判0 安利:http://hzwer.com/5491.html #include #include #include using namespace std; typedef long long ll; inline char nc(){ static char buf[100000],*p1=buf,*p2=原创 2016-07-06 17:21:50 · 401 阅读 · 0 评论 -
[高斯消元 线性基 生成树 随机化权值Xor] BZOJ 3569 DZY Loves Chinese II
很好的建图姿势: 我们找到这个图的任意一棵生成树 然后对于每条非树边将其的权值赋为一个随机数 对于每条树边 我们将这条树边的权值设为所有覆盖这条树边的边权的异或和 那么图不连通当且仅当删除一条树边和覆盖这条树边的所有边集 而由于刚才的处理一条树边和覆盖这条边的所有边集的异或和为零 于是问题转化成了对于给定的k条边是否存在一个边权的异或和为零的子集 果断高斯消元 由于使用原创 2016-06-06 06:54:51 · 592 阅读 · 0 评论 -
[高斯消元 矩阵的秩] 51Nod 1356 代数数的次数
请教了比利 首先 2n2^n 次项是没有问题的,比如2√+3√\sqrt2+\sqrt3,可以构造f(x)=(x+2√+3√)(x+2√−3√)(x−2√+3√)(x−2√−3√)f(x)=(x+\sqrt2+\sqrt3)(x+\sqrt2-\sqrt3)(x-\sqrt2+\sqrt3)(x-\sqrt2-\sqrt3) 这个不是最优解 最优解应该是构造这样一个矩阵 每一行代表一个质因子原创 2017-07-23 13:50:12 · 885 阅读 · 1 评论