线性代数
文章平均质量分 69
qingdaobaibai
这个作者很懒,什么都没留下…
展开
-
【bzoj4004】 JLOI2015装备购买 拟阵+线性基
感觉线性代数的题都会和高斯消元挂钩,学习了一下用高斯消元解决线性基问题,证明跟前面一样都是拟阵,然后就很裸了,为了一个除号的问题看了半天。 #include #include #include #include #include #include #define eps 1e-5 #define maxn 510 using namespace std; struct yts {原创 2015-08-11 20:50:10 · 1478 阅读 · 3 评论 -
【bzoj3120】Line dp+矩阵乘法
f[i][j][S]考虑到第i列有j列全是男生,第i列的情况为S的方案数 状态数O(P^n*Q) f[i][j][a][b]表示第i列有j列全是男生,有a行0结尾,b行01结尾,则有n-a-b行011结尾 状态数O(n^2*Q) 不能枚举第j列的状态,要直接计算状态与状态之间的转移 矩乘优化即可 是我的矩乘太丑了嘛?为什么跑的这么慢? #include #include原创 2016-05-09 21:10:50 · 1247 阅读 · 0 评论 -
【bzoj2466】[中山市选2009]树 高斯消元
ai表示每个节点是否按钮,根据每个点的情况列方程 总共得到n个未知数,n个方程 经过高斯消元后,可能会出现自由元,2^S枚举自由元的选择,计算答案 #include #include #include #include #include #include #include #define maxn 110 using namespace std; bitset a[maxn]原创 2016-05-19 16:49:39 · 903 阅读 · 0 评论 -
【bzoj2844】albus就是要第一个出场 高斯消元
首先预处理出线性基,最多32个有用的数和一堆0 依次看每一位,计算卡上界的数的个数 #include #include #include #include #include #include #define maxn 100010 #define mod 10086 using namespace std; int a[maxn],c[32]; int n,ans; int原创 2016-05-19 10:27:28 · 746 阅读 · 1 评论 -
【bzoj2115】[Wc2011] Xor 线性代数
好坑爹呀,现在都不知道自己退没退役,还不让回去学文化课,还要被带去省队集训被虐 …… 这个东西比较复杂呀!!! 首先是第一个问题,给定n个数,选出若干数与x的异或值最大为多少? 这个东西处理出线性基后,直接求最大值就可以了。 线性基就是用高斯消元处理出若干个独立数,剩下的数都能够用独立数拼出,那么这些独立数就可以代表整个集合。 之后每个独立数如果加入会变大,就直接加入即可。 第二个问题原创 2016-05-18 16:59:43 · 986 阅读 · 3 评论 -
【bzoj3569】DZY Loves Chinese II 线性基+树上小技巧
首先找到一棵dfs树,注意是dfs树,因为dfs树没有横叉边,所以好处理 给每条非树边定一个随机权值,树边的权值就是所有覆盖这条树边的边的权值的异或和 覆盖这条树边,即有一条边的两端分别位于这棵树去掉这条树边所形成的两个联通块中 如果这个集合是线性无关的,则最终的图是连通的,否则是不连通的 于是使用线性基来判断是否是线性无关即可 如何处理一条树边的权值? 因为dfs树只有返祖边,所原创 2016-05-11 22:01:33 · 1896 阅读 · 0 评论 -
【bzoj4000】[TJOI2015]棋盘 dp+矩乘
题目坑爹,行列是从0开始算的,所以样例中是指最中间那个1为棋子 f[i][S]表示考虑到第i行,第i行状态为S的方案数 矩乘优化即可 开内存小了1,蛋疼。 #include #include #include #include #include #include #define ll unsigned int using namespace std; struct yts原创 2016-05-10 15:54:21 · 1342 阅读 · 0 评论 -
【bzoj2510】弱题 概率dp+循环矩阵矩阵乘法
真心觉得是道不错的题,非常简单的dp方程,然后O(n^3)的矩阵乘法都是非常裸的,结果发现最后n 本题的矩阵是一个循环矩阵,每一行都是由前一行右移一位得到的,于是就有一个非常好的性质,我们只需要保存第一行的情况,然后算出答案后,依次右移即可,具体计算方式如下。 f[i]=f[i-1]/M+f[i]*(1-1/M) (f[1] f[2] ^ f[n])*(1-1/M 1/M ^原创 2015-07-06 21:36:28 · 1290 阅读 · 0 评论 -
【bzoj1875】 SDOI2009 HH去散步 dp+矩阵乘法
SDOI的好题,今天听豪爷讲课的时候第一眼没有想出来,一般对10^9比较敏感,就能想到矩乘,但是一看2^30就开始想什么倍增了。 f[i][2][k]表示刚走完第i条边正着走还是倒着走,走过k距离的方案数。 转移是:f[i][0][k]-->f[j][0][k+1] i.y==j.x -->f[j][1][k+1] i.y==j.y f[i][1][原创 2015-07-29 17:07:39 · 539 阅读 · 0 评论 -
【bzoj4031】 HEOI2015小Z的房间 矩阵树定理
第一次做矩阵树定理的题,其实就是记了个结论也没太看证明,然后学了学怎么用高斯消元求行列式,整数消元还真别扭,要用辗转相除,然后要注意取模的问题,一开始以为hzwer写麻烦了,后来想了想不加外面那句话会有问题,因为取模了。 #include #include #include #include #include #include #define mod 1000000000 using原创 2015-08-10 20:17:23 · 1143 阅读 · 0 评论 -
【bzoj3105】 CQOI2013新Nim游戏 拟阵贪心
应晨神的要求,看了一下拟阵,感觉好扯淡,这道题感觉就是要取完之后,不能让对方有方案取到异或和为0就好了。要求取得最少,然后就要留得最多,从大开始留,如果留了之后,没有方法能把它和前面的异或成0就可以留。 然后证明要用拟阵,第二个交换性,迷迷糊糊的,对线性无关理解还不够深刻,回去看一看线性代数。 #include #include #include #include #include #原创 2015-08-11 14:57:07 · 963 阅读 · 0 评论 -
【bzoj4184】 shallot 线段树对时间分治+线性基
有这样一类问题,插入、删除、整体查询。 为了避免删除操作,一般记录每个点的进入时间和删除时间,在线段树里每个节点开一个vector,然后这个区间里插入这个数,最后dfs一遍就只有插入操作,没有删除操作了。 #include #include #include #include #include #include #include #include #define maxn 500010原创 2015-10-02 15:13:29 · 1717 阅读 · 0 评论 -
【bzoj1409】Password 线性筛法+矩阵乘法
E[i]=p^f[i] f[i]表示斐波那契数列的第i项 E[i]%q =p^f[i]%q 因为q 所以p^phi(q)%q=1,注意q不一定是质数 先求f[i]%phi(q)的值,再用快速幂求值即可 按理说,用O(√n)的做法求phi,但是貌似卡不过去,那么直接枚举素数分解质因数就好了 #include #include #include #include #include原创 2016-03-29 17:40:32 · 690 阅读 · 0 评论 -
【bzoj4568】[Scoi2016]幸运数字 线性基+树链剖分
什么鬼东西呀? 就是把两个线性基合并的过程放在线段树上,倍增可做,反正我写的树剖,听说学校里某人在某次考试的考场上的O(nlogn)算法被O(nlog^2n)的树剖秒成渣了。 异或没打括号,调了好久。 #include #include #include #include #include #include #define maxn 20010 using namespace st原创 2016-05-20 08:07:50 · 1303 阅读 · 0 评论