hdu1575:Tr A_矩阵的幂&二分求幂
2013-03-08 22:13
344 查看
http://acm.hdu.edu.cn/showproblem.php?pid=1575
二维矩阵做参数,写在结构体里,优化;
二维矩阵做参数,写在结构体里,优化;
#include <stdio.h> #include <string.h> struct Matrix { int m[12][12]; }a,b,c; int n,m,i,j,k; Matrix deal(Matrix a,Matrix b) //基本的矩阵乘法 { Matrix c; for (i=0;i<n;i++) { for (j=0;j<n;j++) { c.m[i][j]=0; for (k=0;k<n;k++) { c.m[i][j]+=a.m[i][k]*b.m[k][j]; } c.m[i][j]%=9973; } } return c; } Matrix pow(Matrix a,Matrix b) //二分法求阶乘 { while (m!=0) { if (m%2==1) { b=deal(a,b); } m/=2; a=deal(a,a); } return b; } int main() {//freopen("D:\\1.txt","r",stdin);
int t; while (scanf("%d",&t)!=EOF) { while (t--) { scanf("%d%d",&n,&m); //n阶矩阵,m次方 for (i=0;i<n;i++) { for (j=0;j<n;j++) { scanf("%d",&a.m[i][j]); //a是目标矩阵 if (i==j) { b.m[i][j]=1; //b是单位矩阵 } else b.m[i][j]=0; } } c=pow(a,b); int ans=0; for (i=0;i<n;i++) { ans+=c.m[i][i]; } printf("%d\n",ans%9973); } } return 0; }
相关文章推荐
- (矩阵快速幂)hdu1575 Tr A
- Hdu1575 - Tr A - 矩阵快速幂
- 九度oj1443 矩阵乘法加二分求幂
- 矩阵二分乘法(可做模板)——hdu1575
- ACM学习历程—SNNUOJ1215 矩阵2(二分 && dfs)
- HDU1575 Tr A 矩阵应用
- hdu1575 Tr A (矩阵快速幂)
- //九度OJ 教程59 矩阵二分求幂法之大幂
- hdu 1575 Tr A(矩阵乘法快速求幂)
- hdu 1575 Tr A (二分矩阵)
- hdu1575 Tr A(矩阵快速幂)题解
- [HDU1575]Tr A(矩阵乘法)
- HDU 1575 Tr A(矩阵二分法求幂)
- HDU1575 && HDU1757(矩阵入门)
- HDU1575-Tr A(矩阵高速幂)
- hdu1575 Tr A(矩阵快速幂)
- hdu1575 Tr A(矩阵快速幂模板题)
- HDU1575-Tr A(矩阵快速幂)
- HDU1575 Tr A 矩阵应用
- Code Lock 并查集&&二分求幂