线性基
里阿奴摩西
这个作者很懒,什么都没留下…
展开
-
[线性基 树链剖分 线段树 || 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 · 553 阅读 · 0 评论 -
[高斯消元 线性基] BZOJ 2115 [Wc2011] Xor
任意两条路径的和为一个环任取一条1-N的路,找一个环与其XOR和最大莫队 Orz #include#include#includeusing namespace std;typedef long long ll;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if原创 2016-07-06 17:44:36 · 285 阅读 · 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 · 627 阅读 · 0 评论 -
[高斯消元 线性基 树 记数] BZOJ 2322 [BeiJing2011]梦想封印
删边变加边 如果加的是非树边 相当于加了一个环 加入线性基中如果加入的是树边 就dfs扩展树两条链是等价的 相当于 他们用线性基消过后是一样的 用set维护解是不等价链的个数*1减一是要去掉0#include#include#include#includeusing namespace std;typedef long long ll;inline c原创 2016-07-06 22:57:49 · 722 阅读 · 1 评论 -
[高斯消元 线性基] BZOJ 4269 再见Xor
这就很水了#include#include#includeusing 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 · 488 阅读 · 0 评论 -
[高斯消元 线性基 贪心 拟阵 逆元] BZOJ 4004 [JLOI2015]装备购买
不是很懂拟阵那一套理论#include#include#includeusing 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 · 421 阅读 · 0 评论 -
[高斯消元 线性基 贪心 拟阵] BZOJ 3105 [cqoi2013]新Nim游戏
第一次拿完后,要使剩下的火柴中不存在异或和为0的子集,且让子集和最大求线性无关子集算术和最大值证明是个拟阵 但我不会拟阵记结论吧...#include#include#include#includeusing namespace std;typedef long long ll;inline char nc(){ static原创 2016-07-06 17:30:13 · 563 阅读 · 0 评论 -
[高斯消元 线性基 贪心 拟阵] BZOJ 2460 [BeiJing2011]元素
基本同BZOJ3105#include#include#include#includeusing 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 · 920 阅读 · 0 评论 -
[高斯消元 线性基 二进制拆分] BZOJ 2844 albus就是要第一个出场
和hdu3949刚好相反啦记得特判0还是一个结论 异或值有1#include#include#includeusing 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 · 376 阅读 · 0 评论 -
[高斯消元 线性基 二进制拆分] HDU 3949 XOR
意识流的记一个结论就好了 将K二进制拆分什么的 不难想注意特判0安利:http://hzwer.com/5491.html#include#include#includeusing namespace std;typedef long long ll;inline char nc(){ static char buf[100000],*p1=buf,*p2=原创 2016-07-06 17:21:50 · 432 阅读 · 0 评论 -
[高斯消元 线性基 生成树 随机化权值Xor] BZOJ 3569 DZY Loves Chinese II
很好的建图姿势:我们找到这个图的任意一棵生成树 然后对于每条非树边将其的权值赋为一个随机数对于每条树边 我们将这条树边的权值设为所有覆盖这条树边的边权的异或和那么图不连通当且仅当删除一条树边和覆盖这条树边的所有边集 而由于刚才的处理一条树边和覆盖这条边的所有边集的异或和为零于是问题转化成了对于给定的k条边是否存在一个边权的异或和为零的子集 果断高斯消元 由于使用原创 2016-06-06 06:54:51 · 599 阅读 · 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 · 897 阅读 · 1 评论