线性基
sun.strick
这个作者很懒,什么都没留下…
展开
-
网上的写法都什么辣鸡bzoj4004
网上说要什么拟阵证明巴拉巴拉。显然我是不会的,但是排个序我还是知道的。然后看了网上的程序一脸懵逼,讲道理高斯消元不是应该最外重循环是列数嘛。你这是怎么搞搞的,学长说这是把每行加进去判断之前的行能不能凑出这一行,这么讲好像也有些道理。但是这么丑的高斯消元我是拒绝的。。。所以我就想写个正常一点的。想想其实也不难。我只要不改变这些行的位置不就好了,不用swap操作就好了。写了一发交上去wa了我非常不服,原创 2016-07-22 22:05:31 · 432 阅读 · 0 评论 -
bzoj2728理解了好久
因为以前也没怎么碰到过NADN的题目,所以第一次碰非常陌生没有感觉。什么等价类什么东西完全懵逼。下面我尽量朴素的讲解一下我的看法。 首先NAND 可以模拟任何一种位运算。(xor,and ,not,or)这个记一下就好,好像或非也是这样。 然后显然可以知道如果a1~an z在二进制下P和Q位都相等,那么显然怎么搞这两位在ai上都还是相等的。(这个很显然)然后我们就称这些位上构成一个等价类,然后网转载 2016-07-22 22:12:10 · 341 阅读 · 0 评论 -
bzoj4568
这道题其实思维复杂度并不是很高,但是给我这种只会写树剖的人。。。那真是 要写死。。。其实方法也没什么,就是把线性基的合并过程弄到线段树上来做。这里我当时还出了些小偏差,调试的时候发现一组线性基是2 11我以为这样不算线性基,后来想起这只不过不是最简线性基罢了。。。 不过有一点值得一说。就是这个数据结构题竟然一遍ac了。。。 #include #include #include原创 2016-07-23 22:14:03 · 238 阅读 · 0 评论 -
bzoj3569
这题我只能说玄学了。。。这种神奇的方法都能有,但是这至少告诉我们,随机状态下。产生0的几率是十分小的。。 #include #include #define N 100010 #define M 500010 using namespace std; typedef long long ll; ll ran,p1,p2,p3,P=~0U>>1; struct edge{int x,y,next;转载 2016-07-23 22:21:08 · 562 阅读 · 0 评论 -
线性基初识
到网上翻了好久感觉还是这个比较符合我的高斯消元模板 #include #include #include using namespace std; typedef long long ll; const int N = 10005; int t, n; ll a[N]; void gauss() { int r = 0; for (int i = 60; i >转载 2016-07-21 15:01:36 · 272 阅读 · 0 评论 -
bzoj2844
理了好久的思路。还是数学太弱了 #include #include #include #include #include using namespace std; typedef unsigned long long ll; const ll mo=10086; int n,a[100005],Q; #define rep(i,n) for (int i=1;i<=n;i++) #def转载 2016-07-21 20:45:38 · 316 阅读 · 0 评论 -
bzoj2115
这题。。。不看看题解谁tm想得到标算!看了题解。。。谁tm不会写。。。唯一有点技巧性的就是生成树的时候判环那个操作(因为一个点只要被访问了两次那么两条路径一xor必然是一个环,不是环的部分是重合的所以抵消了)其他的话。注意一下di是longlong 我因为不喜欢看那么长的题目所以看的都是简化版题目没能注意到被卡了好几发 #include #include #include #i原创 2016-07-22 11:12:33 · 247 阅读 · 0 评论