hdu 1575 Tr A 解题报告
2013-05-19 12:51
337 查看
这个主要是矩阵2分快速幂
View Code
#include<iostream> #include<stdio.h> #include<cmath> using namespace std; struct aa { int a[11][11]; }; aa f(aa m,aa n,int nn) { aa ans; for(int i=0;i<nn;i++) for(int j=0;j<nn;j++) { ans.a[i][j]=0; for(int k=0;k<nn;k++) ans.a[i][j]+=m.a[i][k]*n.a[k][j]; ans.a[i][j]%=9973; } return ans; } int mul(aa m,int n,long k) { aa ans; int i,j; int sum; for(i=0;i<n;i++) for(j=0;j<n;j++) ans.a[i][j]=(i==j); //注意这里单位阵的作用 while(k) { if(k&1) { ans=f(ans,m,n); } k>>=1; m=f(m,m,n); } sum=0; for(i=0;i<n;i++) sum+=ans.a[i][i]; return sum%9973; } int main() { long m; int t,n,i,j; scanf("%d",&t); while(t--) { aa p; scanf("%d%d",&n,&m); for(i=0;i<n;i++) for(j=0;j<n;j++) scanf("%d",&p.a[i][j]); printf("%d\n",mul(p,n,m)); } return 0; }
View Code
相关文章推荐
- hdu 1575 Tr A 解题报告
- HDU 1575解题报告
- HDU 1050 解题报告
- HDU1075 What Are You Talking About 解题报告--字典树
- HDU - 2600 War 解题报告
- B - Tr A HDU - 1575
- HDU 1394 Minimum Inversion Number解题报告
- BestCoder6 1002 Goffi and Squary Partition(hdu 4982) 解题报告
- HDU--2104--hide handkerchief--解题报告(辗转相除的运用)
- HDU第11版解题报告(农夫版)
- 解题报告:HDU_4947:GCD Array 莫比乌斯反演+树状数组
- 解题报告-HDU 3662 (三维凸包)
- hdu 2013 ACM/ICPC Asia Regional Online —— Warmup解题报告
- hdu 1003 解题报告 ---- Max Sum
- HDU 4777 Rabbit Kingdom 解题报告
- Tr A hdu 1575
- Tr A hdu 1575 二分法矩阵相乘的高次幂
- hdu 1005解题报告
- HDU 4709 Herding 解题报告
- HDU 1704解题报告