数学-线性代数
Maxwei_wzj
AFO
展开
-
【HDU2294】Pendant-DP矩阵优化
【HDU2294】Pendant-DP矩阵优化原创 2016-09-11 17:44:54 · 401 阅读 · 0 评论 -
【BZOJ4818】序列计数(SDOI2017)-矩阵优化DP+线性筛质数
测试地址:序列计数 做法:本题需要用到矩阵优化DP+线性筛质数。 我们很快就能想到一个状态定义:令f(i,j)f(i,j)f(i,j)为iii个数的数列中,数字和对ppp取模的结果为jjj的方案数,那么我们很快就能得出状态转移方程。又根据这个状态转移方程,每一个状态都只和上一层的一些状态有关,而且每一层的状态数较少,所以又想到使用矩阵优化,那么就可以做到O(p3logn)O(p3logn)O...原创 2018-04-10 15:48:15 · 192 阅读 · 0 评论 -
【POJ2778】DNA Sequence-AC自动机+矩阵优化DP
测试地址:DNA Sequence 题目大意:给定mmm个DNA序列,问有多少长为nnn的DNA序列不包含上面的任何一个DNA序列。一个DNA序列指一个仅包含A,C,G,T四种字符的字符串。 做法:本题需要用到AC自动机+矩阵优化DP。 首先不匹配上任意一个字符串,这已经是非常明显的AC自动机+DP了,只需令f(i,j)f(i,j)f(i,j)为要求的DNA序列的前iii位匹配到AC自动机上...原创 2018-04-04 10:13:14 · 200 阅读 · 0 评论 -
【BZOJ1494】生成树计数(NOI2007)-连通性状压DP+矩阵加速
测试地址:生成树计数 做法:本题需要用到连通性状压DP+矩阵加速。 假设图是从左到右不断添加点的,那么每添加一个点,影响到的只有最后kkk个点的连通性,所以不难想到以最后kkk个点的连通性作为状态进行DP。所谓的连通性,就是将这kkk个点分为若干个集合,相同集合内的点就是连通的,不同集合内的点就不连通,不难发现合法的状态数只有B(k)B(k)B(k),即第kkk个Bell数,而Bell数就是k...原创 2018-05-08 14:57:05 · 295 阅读 · 0 评论 -
【BZOJ2326】数学作业(HNOI2011)-递推+矩阵快速幂
测试地址:数学作业 做法:本题需要用到递推+矩阵快速幂。 令f(i)f(i)f(i)为Concatenate(i)Concatenate(i)Concatenate(i)对mmm取模后的结果,很快能得到一个递推式: f(i+1)=f(i)×10k+i+1f(i+1)=f(i)×10k+i+1f(i+1)=f(i)\times 10^k+i+1 注意到所需的信息:f(i)f(i)f(i)和i...原创 2018-06-12 10:25:42 · 215 阅读 · 0 评论 -
【POJ2118】Firepersons-递推+矩阵乘法
测试地址:Firepersons 题目大意:求解常系数线性递推关系:an=∑ki=1an−ibian=∑i=1kan−ibia_n=\sum_{i=1}^ka_{n-i}b_i的第iii项(aiaia_i),其中a0,...,ak−1a0,...,ak−1a_0,...,a_{k-1}和b1,...,bkb1,...,bkb_1,...,b_k已给出。 做法:本题需要用到递推+矩阵乘法。 这...原创 2018-07-04 17:53:13 · 242 阅读 · 0 评论 -
【LuoguP4719】动态DP模板-树链剖分+线段树+矩阵乘法
测试地址:动态DP做法: 本题需要用到树链剖分+线段树+矩阵乘法维护动态DP。动态DP这个东西以前听过,但当时没有看懂,现在想来觉得是卡在矩阵乘法这个地方。这里用的不是传统的矩阵乘法。一般的DP我们肯定会做,序列上的线性动态DP(可以用线性递推式递推的DP)很容易想到用线段树+矩阵乘法优化,但最大权值独立集这个经典树形DP模型要动态维护的话,有两个和上面问题不同的地方,第一是它不是序列,第二...原创 2020-01-22 12:13:20 · 257 阅读 · 0 评论 -
【BZOJ4547】小奇的集合-矩阵快速幂+等比二分
测试地址:小奇的集合 做法:本题需要用到矩阵快速幂+等比二分。 首先,我们肯定是每次选择集合中两个最大的元素加起来,这样能使最后集合的和最大。 那么现在有两种情况: 1.这两个元素加起来比原最大值小,但比原次大值大,这时候我们把次大值替换为它们的和。 2.这两个元素加起来比原最大值大,这时候次大值就是原最大值,最大值就是它们的和。 为什么不会出现两个元素加起来比原次大值还小的情况?因为...原创 2018-04-09 15:10:54 · 238 阅读 · 0 评论 -
【BZOJ4596】黑暗前的幻想乡(SHOI2016)-矩阵树定理+容斥原理
测试地址:黑暗前的幻想乡 做法:本题需要用到矩阵树定理+容斥原理。 我们发现数据范围很小,而这个问题又是一个计数问题,启发我们使用容斥原理,那么答案就是:任意选的方案数-一个公司不选的方案数+两个公司不选的方案数……以此类推。那么我们只需要枚举集合,然后用矩阵树定理算出对应的方案数即可,总的时间复杂度是O(2n−1(n−1)3)O(2n−1(n−1)3)O(2^{n-1}(n-1)^3),虽然...原创 2018-04-02 11:23:30 · 232 阅读 · 0 评论 -
【BZOJ3122】随机数生成器(SDOI2013)-BSGS+矩阵乘法
测试地址:随机数生成器 做法:本题需要用到BSGS+矩阵乘法。 首先看到线性递推式,就想到用矩阵乘法来做,那么题目要求的就是关于xxx的方程: (a0b1)x(x11)=(t1)(ab01)x(x11)=(t1)\begin{pmatrix}a&b\\ 0&1\end{pmatrix}^x\begin{pmatrix}x_1\\1\end{pmatrix}=\begin{pmatrix}t...原创 2018-04-01 17:07:10 · 211 阅读 · 0 评论 -
【NOI2012T1】随机数生成器-矩阵快速幂+高精度
【NOI2012T1】随机数生成器-矩阵快速幂+高精度原创 2017-03-12 19:06:02 · 450 阅读 · 0 评论 -
【POJ3744】Scout YYF I-概率DP+矩阵加速优化
【POJ3744】Scout YYF I-概率DP+矩阵加速优化原创 2016-09-13 21:03:31 · 399 阅读 · 0 评论 -
【NOI2013T4】矩阵游戏-矩阵优化+十进制快速幂
【NOI2013T4】矩阵游戏-矩阵优化+十进制快速幂原创 2017-03-30 20:00:06 · 499 阅读 · 0 评论 -
【NOI2011T1】兔农-矩阵快速幂+乘法逆元
【NOI2011T1】兔农-矩阵快速幂+乘法逆元原创 2017-05-29 20:20:47 · 601 阅读 · 0 评论 -
【BZOJ4870】组合数问题(六省联考2017)-矩阵优化DP
测试地址:组合数问题 做法:这题在THUSC2017试机时看到了,当时觉得非常有趣,于是就找到了原题来做,感觉实在是妙啊…… 这一题应该使用矩阵优化DP来解决。 第一眼看上去这题感觉非常难做,推式子又感觉推不出,但其实我们观察一下这个式子,发现它的意义可以表达成:从nknknk个物品里取出的物品数量对kkk取模结果为rrr的方案数。将这个式子设为f(nk,r)f(nk,r)f(nk,r),可...原创 2017-05-21 23:28:34 · 544 阅读 · 0 评论 -
【POJ2888】Magic Bracelet-Burnside引理+数论+DP矩阵优化
【POJ2888】Magic Bracelet-Burnside引理+数论+DP矩阵优化原创 2017-06-11 12:11:36 · 1505 阅读 · 4 评论 -
【HDU2865】Birthday Toy-Burnside引理+数论+DP矩阵优化
【HDU2865】Birthday Toy-Burnside引理+数论+DP矩阵优化原创 2017-06-11 16:46:55 · 450 阅读 · 0 评论 -
【BZOJ1009】GT考试(HNOI2008)-DP矩阵优化+KMP
【BZOJ1009】GT考试(HNOI2008)-DP矩阵优化+KMP原创 2017-12-01 20:34:28 · 517 阅读 · 0 评论 -
【BZOJ4827】礼物(AHOI&HNOI2017)-FFT
测试地址:礼物 做法:本题需要用到FFT。 为了方便讨论,我们把装饰物的编号设为000~n−1n−1n-1,并把所有的调整操作都仅视为对第一串手环进行,显然这样并不失一般性。 不难看出,第一串手环旋转kkk位,并增加ccc的亮度(如果原操作是对第二串手环亮度增加ccc,那么这里就是增加−c−c-c)的差异值为: ∑n−1i=0(x(i+k)%n+c−yi)2∑i=0n−1(x(i+k)%n...原创 2018-02-22 21:44:42 · 304 阅读 · 0 评论 -
【BZOJ4568】幸运数字(SCOI2016)-树上倍增+异或线性基合并
测试地址:幸运数字 做法:本题需要用到树上倍增+异或线性基合并。 我们发现,每次询问都是求从一条路径上选一个子集,使得这个子集的异或和最大。如果只有一个询问,那敢开这题的大家肯定都会O(60n)O(60n)O(60n)的线性基+贪心做法,问题是有qqq个询问,暴力做显然会炸,所以需要找到优化的方法。 我们发现只要求出了对应向量空间的线性基,那么求最大异或和就是O(60)O(60)O(60)的...原创 2018-03-22 22:18:30 · 369 阅读 · 0 评论 -
【BZOJ2115】XOR(WC2011)-异或线性基+DFS树+贪心
测试地址:XOR 做法:本题需要用到异或线性基+DFS树+贪心。 这题有很多神奇的结论,本蒟蒻只会感性证明,严谨证明就请各位大佬自己脑补了…… 首先我们有一个结论: 结论1:任何一条从111到NNN路径的异或和,都可以表示成任何一条从111到NNN的路径和几个与该路径在同一连通块中的环的异或和。 感性证明一下,因为是异或和,所以一条边走两次就相当于抵消掉了,那么一条路径最后肯定会抵消成一...原创 2018-03-22 20:19:46 · 184 阅读 · 0 评论 -
【HDU3949】XOR-异或线性基
测试地址:XOR 题目大意:给定nnn个正整数,它的每个子集(除空集外)都有一个异或和,求这些异或和中严格第kkk小的值。 做法:本题需要用到异或线性基。 首先我们求出线性基,然后每种异或和对于这个线性基都有唯一的组合方式,而根据线性基的性质,它们的最高位肯定各不相同,并且没有任何一个数包含其他数的最高位,所以我们对kkk进行二进制拆分,然后从小到大把对应位的线性基异或起来就是答案了。 傻...原创 2018-03-22 12:42:56 · 266 阅读 · 0 评论 -
【BZOJ3105】新Nim游戏(CQOI2013)-博弈论+异或线性基+贪心
测试地址:新Nim游戏 做法:本题需要用到博弈论+异或线性基+贪心。 首先根据博弈论的基本知识,标准的Nim游戏中,只要所有火柴堆内的火柴数目的异或值为000,那么先手必败,否则先手必胜。而这个新的游戏在经过前两轮后就是一个由我们先手的标准Nim游戏,那么后手为了胜利,必然会留下若干堆火柴,使得它们的异或值为000,而我们为了胜利,就不能提供后手这个机会,那么我们就要使得我们选完后,留下的火柴...原创 2018-03-21 20:41:19 · 295 阅读 · 0 评论 -
【BZOJ2460】元素(BJOI2011)-异或线性基+贪心
测试地址:元素 做法:本题需要用到异或线性基+贪心。 有关异或线性基的知识可以看这里。 根据题目的意思,我们需要找到一个矿石的子集,使得不存在任何一个子集使得子集内矿石的编号异或和为000,也就是说,要选出一个关于异或运算的线性无关组。而在求线性基的时候,我们实际上也求出了一组线性无关组。根据求线性基算法的相关性质,我们把数字放进去的先后顺序并不影响求出的线性基本身,而先放进去肯定最有可能成...原创 2018-03-21 20:15:53 · 291 阅读 · 0 评论 -
【BZOJ4004】装备购买(JLOI2015)-线性基+贪心
测试地址:装备购买 做法:本题需要用到线性基+贪心。 很容易看出,这题要求一个权值和最大的线性无关组,这次是真的原版线性基了,而不是异或线性基,所以为了保证精度,要开long double,而且写法也和异或线性基略有不同,详见代码。 以下是本人代码:#include <bits/stdc++.h>using namespace std;int n,m,p[510];...原创 2018-03-29 20:07:51 · 236 阅读 · 0 评论 -
【BZOJ3534】重建(SDOI2014)-矩阵树定理
测试地址:重建 做法:本题需要用到矩阵树定理。 这两天去学(背)了矩阵树定理,主要就是将度数矩阵DDD减去邻接矩阵AAA得到基尔霍夫矩阵,然后将矩阵最后一行和最后一列去掉,剩下的部分求个行列式值,那么这个行列式的值就是这个图的生成树个数。根据行列式的性质,将一行乘上同一个数加到另一行上,所得到的行列式值不变,所以我们可以用类似高斯消元的方法把行列式消成上三角行列式。而上三角行列式的值等于其主对...原创 2018-03-20 20:33:24 · 280 阅读 · 0 评论