Processing math: 100%

随笔分类 -  矩阵快速幂

摘要:题意:xi+1=(xia+c)求,x_n%g 题解:xn=(anx0+(an1+an2+...+a+1)c),由于a 1和m不一定互质,所以没法逆元,只能矩阵快速幂求,乘法必须用快速乘,不然会爆ll / Problem: 2875 User: 阅读全文
posted @ 2019-02-27 21:32 walfy 阅读(111) 评论(0) 推荐(0) 编辑
摘要:https://www.lydsy.com/JudgeOnline/problem.php?id=1009 阿申准备报名参加GT考试,准考证号为N位数X1X2....Xn(0<=Xi<=9),他不希望准考证号上出现不吉利的数字。他的不吉利数学A1A2...Am(0<=Ai<=9)有M位,不出现是指X 阅读全文
posted @ 2018-04-15 14:23 walfy 阅读(169) 评论(0) 推荐(0) 编辑
摘要:http://codeforces.com/contest/678 A:水题 #include<bits/stdc++.h> #define fi first #define se second #define mp make_pair #define pb push_back #define pi 阅读全文
posted @ 2018-01-16 14:23 walfy 阅读(185) 评论(0) 推荐(1) 编辑
摘要:emm,a出3题,补了两题 A,B水题 #include<bits/stdc++.h> #define fi first #define se second #define mp make_pair #define pb push_back #define read(a) scanf("%d",&a 阅读全文
posted @ 2017-10-02 20:17 walfy 阅读(261) 评论(0) 推荐(0) 编辑
摘要:和上一题有点相似,但是这题是求包含的,并且还要求和 可以求所有情况-不包含的情况,所有情况可用矩阵快速幂求得 还有一点就是如果题目说答案余2^64,直接开unsigned long long就行了,会自动取膜的 #include<bits/stdc++.h> #define fi first #de 阅读全文
posted @ 2017-09-22 15:22 walfy 阅读(284) 评论(0) 推荐(0) 编辑
摘要:给m个子串,求长度为n的不包含子串的母串数,最直接的应该是暴搜,肯定tle,考虑用ac自动机 将子串建成字典树,通过next表来构造矩阵,然后用矩阵快速幂求长度为n的数量 邻接矩阵https://wenku.baidu.com/view/d7b9787f1711cc7931b716b0.html 对 阅读全文
posted @ 2017-09-21 16:35 walfy 阅读(250) 评论(0) 推荐(0) 编辑
摘要:挑战上面的题目,感觉脑洞很大 分别找红蓝个数全为偶,全为奇,一奇一偶的个数ai,bi,ci 转移矩阵是| 2 1 0 |,是一个对称矩阵(会不会有什么联系。) | 2 2 2 | | 0 1 2 | #include<map> #include<set> #include<cmath> #inclu 阅读全文
posted @ 2017-05-20 18:51 walfy 阅读(244) 评论(0) 推荐(0) 编辑
摘要:花了一个多小时终于ac了,有时候真的是需要冷静一下重新打一遍才行。 这题就是 |aod(n)| = |1 ax*bx ax*by ay*bx by*ay| |aod(n-1) | |an*bn | = |0 ax*bx ax*by ay*bx by*ay| |an-1*bn-1 | |an | = 阅读全文
posted @ 2017-05-20 18:27 walfy 阅读(150) 评论(0) 推荐(0) 编辑
摘要:转移矩阵很容易求就是|0 1|,第一项是|0| |1 1| |1| 然后直接矩阵快速幂,要用到费马小定理 :假如p是质数,且gcd(a,p)=1,那么 a(p-1)≡1(mod p)。即:假如a是整数,p是质数,且a,p互质(即两者只有一个公约数1),那么a的(p-1)次方除以p的余数恒等于1(这东 阅读全文
posted @ 2017-05-20 14:33 walfy 阅读(206) 评论(0) 推荐(0) 编辑
摘要:状态变化 (x,y,dx,dy,i) 表示i时刻熊站在(x,y)处速度向量(dx,dy)下一个状态是 ( 2x+y+dx+i , x+2y+dy+i , x+y+dx , x+y+dy , i+1 ) 为了方便可以把平面从(1,1)平移到(0,0) 这时速度需要+2 (因为速度每次+x+y x和y都 阅读全文
posted @ 2017-05-20 12:47 walfy 阅读(185) 评论(0) 推荐(0) 编辑
摘要:这题太坑了。。。刚开始以为可以用|a+sqrt(b) 1|水过。。。结果tle,还一直想明明我logn的做法怎么可能tle。。 | 0 1| 实在无奈看的题解 (a+sqrt(b))^n=x+y*sqrt(b); (a+sqrt(b))^(n+1)=a*x+b*y+(x+a*y)*sqrt(b) 这 阅读全文
posted @ 2017-05-18 13:48 walfy 阅读(133) 评论(0) 推荐(0) 编辑
摘要:a^(n+2)+b^(n+2)=(a+b)*(a^(n+1)+b^(n+1))-a*b*(a^n+b^n) 坑爹的题目关系式都推出来了居然还是wa了。。。。。 不能只看p,q=0就退出,因为a,b不一定为0啊,卧槽,出题人简直就是个心机婊 还有n=0的情况要考虑 #include<map> #inc 阅读全文
posted @ 2017-05-17 16:48 walfy 阅读(158) 评论(0) 推荐(0) 编辑
摘要:求A+A^1+...+A^n 转换一下变成|A E|,的n+1次方就是|A^(n+1) A^n+...+A+E| |0 E| | 0 E | 最后结果减去E就行了,还有一点就是-1之后可能会变成负数,所以要+10再%10 #include<map> #include<set> #include<cm 阅读全文
posted @ 2017-05-17 14:38 walfy 阅读(203) 评论(0) 推荐(0) 编辑
摘要:题目看了半天没看懂,,就是把一个数列更新r次,每次更新就是计算和,就是每一个数,只要出现了的表号都要加上去,具体看代码 矩阵快速幂实现加速 #include<map> #include<set> #include<cmath> #include<queue> #include<stack> #inc 阅读全文
posted @ 2017-05-17 13:01 walfy 阅读(168) 评论(0) 推荐(0) 编辑
摘要:#include<map> #include<set> #include<cmath> #include<queue> #include<stack> #include<vector> #include<cstdio> #include<iomanip> #include<cstdlib> #inc 阅读全文
posted @ 2017-05-17 10:38 walfy 阅读(207) 评论(0) 推荐(0) 编辑
摘要:这题不能直接按常规做啊,因为数组根本就开不下,转换思维A(B*A)^(n*n-1)B 这样的话数组B*A就是10*10了,然后快速幂就行了 刚开始数组都开小了,tle,还找了半天bug。。。还有就是定义三个struct真累。。。 #include<map> #include<set> #includ 阅读全文
posted @ 2017-05-16 20:35 walfy 阅读(150) 评论(0) 推荐(0) 编辑
摘要:就是优化一段代码,用矩阵快速幂(刚开始想到了转移矩阵以为是错的) 在搜题解时发现了一个神奇的网站:http://oeis.org/ 用来找数列规律 的神器。。。。 规律就是an=an-1+2*an-2+1 然后构造矩阵就行了 还有特例1的时候记得%m #include<map> #include<s 阅读全文
posted @ 2017-05-16 19:25 walfy 阅读(181) 评论(0) 推荐(0) 编辑
摘要:参考博客:http://blog.csdn.net/rowanhaoa/article/details/39343769 反正递推关系式推了一个多小时没搞出来。。。太弱了 真是愧对数学系这一专业了。。。。 转移矩阵就是这个: 10 0 0 0 0 1 10 1 0 0 0 1 10 1 1 0 0 阅读全文
posted @ 2017-05-15 21:25 walfy 阅读(226) 评论(0) 推荐(0) 编辑
摘要:找出递推关系式就好了 (fi+1)=(1 -1)(fi ) ( fi)=(1 0)(fi-1) 不会打矩阵将就着看吧。。。 这是第一道矩阵快速幂。细节还是有很多没注意到的 本来想看挑战写的,结果上面的vector套vector看的我头都晕了。。 #include<map> #include<set> 阅读全文
posted @ 2017-05-15 19:54 walfy 阅读(184) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示