标签:style blog http color os ar for sp div
#define Matr 105 //矩阵大小 struct mat//矩阵结构体,a表示内容,r行c列 矩阵从1开始 { int a[Matr][Matr]; int r,c; mat() { r=c=0; memset(a,0,sizeof(a)); } }; void print(mat m) { int i,j; //printf("%d\n",m.size); for(i=0;i<m.r;i++) { for(j=0;j<m.c;j++)printf("%d ",m.a[i][j]); printf("\n"); } } mat mul(mat m1,mat m2,int mod) { mat ans=mat();ans.r=m1.r;ans.c=m2.c; for(int i=1;i<=m1.r;i++) for(int j=1;j<=m2.r;j++) if(m1.a[i][j]) for(int k=1;k<=m2.c;k++) ans.a[i][k]=(ans.a[i][k]+m1.a[i][j]*m2.a[j][k])%mod; return ans; } mat quickmul(mat m,int n,int mod) { mat ans=mat(); int i; for(i=1;i<=m.r;i++)ans.a[i][i]=1; ans.r=m.r;ans.c=m.c; while(n) { if(n&1)ans=mul(m,ans,mod); m=mul(m,m,mod); n>>=1; } return ans; } /* ans^=n -> mat ans=mat(); ans.r=R;ans.c=C; 初始化ans矩阵 ans=quickmul(ans,n,mod); */
运用矩阵乘法解决的经典问题
http://www.matrix67.com/blog/archives/276
标签:style blog http color os ar for sp div
原文地址:http://www.cnblogs.com/xiaohongmao/p/4006621.html