矩阵快速幂
文章平均质量分 59
ijbuhv
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
poj3233Matrix Power Series 矩阵快速幂
//给一个矩阵a//求a+a^2+a^3+...a^k//和快速幂相似二分求出a^i//设k = 8//A + A^2 + A^3 + A^4 + A^5 + A^6 + A^7 + A^8 =(A + A^2 + A^3 + A^4) + A^4*(A + A^2 + A^3 + A^4)#include#include#includeusing namespace std ;原创 2015-09-03 19:06:01 · 537 阅读 · 0 评论 -
hdu5411CRB and Puzzle 矩阵快速幂
//n个零件,一个模型最多可由m个零件组成//在每一个零件后面只能由特定的零件组装//问能够组成的模型的种类数//先构造一个n*n的矩阵A,那么对于每一个//A^(m-1)表示由m个零件组成,对应的零件的//的种类数//所以就是求A^1+A^2+...A^(m-1)//快速幂加一个二分可做#include#include#includeusing namespace std原创 2015-10-20 22:46:49 · 492 阅读 · 0 评论 -
hdu4990Reading comprehension 矩阵快速幂
//a[0] = 0 //a[n] = a[n-1] + n%2//给n , 求a[n]//a[n] = a[n-1] + (n+1)/2 - n/2//构造矩阵// |a[n] | |2 1 -1 0| |a[n-1] |// |(n+2)/2| |0 0 1 1| |(n+1)/2|// |(n+1)/2| |0 1 0 0| | n/2 |// | 1 |原创 2015-09-04 18:14:20 · 791 阅读 · 0 评论 -
hdu4965Fast Matrix Calculation 矩阵快速幂
//给一个n*k的矩阵A和一个k*n的矩阵B(n <= 1000) , (k <= 6)//C = A*B//求M = C^(n*n)//M = A*B*A*B... = A*(B*A)^(n*n-1)*B//中间用快速幂做#include<cstdio>#include<cstring>#include<iostream>using namespace std ;const in原创 2015-09-04 16:32:42 · 561 阅读 · 0 评论 -
hdu4291A Short problem 矩阵快速幂
//g[0] = 0;//g[1] = 1//g[n] = 3*g[n-1]+g[n-2]//求g(g(g(n))) //本地暴力搜出循环节 ,然后用矩阵快速幂做#include<cstdio>#include<cstring>#include<iostream>using namespace std ;typedef long long ll ;const ll mod1 =原创 2015-09-04 15:34:05 · 564 阅读 · 0 评论 -
hdu4549M斐波那契数列 矩阵快速幂 + 费马小定理
//f[0] = a ;//f[1] = b ;//f[n] = f[n-1]*f[n-2] n>=2//给a , b , n //求f[n]//可以很容易得到//f[n] = a^(F[n-1])*b^(F[n-2]) n>=2//用矩阵快速幂很容易求F[n]//注意F[n]会很大//所以可以根据费马小定理可以在求的时候F[n]%=(mod-1)#include#incl原创 2015-09-03 21:57:25 · 660 阅读 · 0 评论 -
hdu4686Arc of Dream 矩阵快速幂
//a[n] = ax*a[n-1] + ay//b[n] = bx*b[n-1] + by//给出n求segma(a[i]*b[i])(0<=i<=n-1)//f[n] = a[n]*b[n] = ax*bx*f[n-1] + ax*by*a[n-1] + ay*bx*b[n-1] + ay*by ;//s[n] = segma(a[i]*b[i]) = s[n-1] + f[n]//可原创 2015-09-04 13:32:26 · 594 阅读 · 0 评论 -
hdu2157How many ways?? 矩阵快速幂
//给定一个有向图,问从A点恰好走k步(允许重复经过边)到达B点的方案数mod p的值//把给定的图转为邻接矩阵,即A(i,j)=1当且仅当存在一条边i->j。令C=A*A,那么C(i,j)=ΣA(i,k)*A(k,j),//实际上就等于从点i到点j恰好经过2条边的路径数(枚举k为中转点)//类似地,C*A的第i行第j列就表示从i到j经过3条边的路径//同理,如果要求经过k步的路径数,我们原创 2015-09-02 22:27:52 · 552 阅读 · 0 评论 -
hdu5015233 Matrix 矩阵快速幂
//对于一个n*(m+1)的矩阵n<=10 ,m<=1e9 //a[0][0] = 0 , a[0][1] = 233 , a[0][2] = 2333 , a[0][3] = 23333...//给出a[1][0] ... a[n][0]//其他的a[i][j] = a[i-1][j] + a[i][j-1]//可以推到a[n][m] = a[n][m-1] + a[n-1][m-1]原创 2015-09-09 21:19:43 · 523 阅读 · 0 评论 -
hdu2604Queuing 矩阵快速幂
//给定队列长度//队列的每个位置可以是f或m//问这个队列中没有fmf和fff的情况的个数//设f[n]为满足要求的队列为n的情况个数//当最后一位是m时 , 满足条件为f[n-1]//当最后一位是f时 , 最后两位是fm和ff两个都不满足//当最后两位是fm和ff时 , 最后三位是fmf , fmm , ffm , fff//fmf和fff不满足 , fmm满足 所以有f[n-3原创 2015-09-03 20:29:33 · 656 阅读 · 1 评论 -
hdu5318The Goddess Of The Moon 矩阵快速幂
//n(<=50)种字符串,每一种字符串的个数不限//前一个字符串s的后缀与后一个字符串t相同且长度大于1//那么两个字符串可以连接在一起,//那么选m(<=1e9)个字符串连接在一起有多少种情况//建立一个可连接矩阵,直接快速幂就行,注意一下字符串去重#include#include#include#include#includeusing namespace std ;c原创 2015-11-06 21:15:36 · 506 阅读 · 0 评论
分享