[HDU] Tr A
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[HDU] Tr A相关的知识,希望对你有一定的参考价值。
没想到我已经沦落到刷HDU的水题来过日子了。
#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<cstring>
using namespace std;
const int N = 15,Mod = 9973;
int n,k;
struct matrix{
int M[N][N];
void operator * (matrix x){
int i,j,k; matrix t;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
t.M[i][j]=0;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
for(k=1;k<=n;k++)
t.M[i][j]=(t.M[i][j]+M[i][k]*x.M[k][j]) % Mod;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
M[i][j]=t.M[i][j];
}
}A,C;
int main(){
int i,j,T;
scanf("%d",&T);
while(T--){
scanf("%d%d",&n,&k);
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
scanf("%d",&A.M[i][j]);
C=A;
k-=1;
for(; k ; k >>= 1 ){
if( k & 1) A * C;
C * C ;
}
int ans=0;
for(i=1;i<=n;i++) ans=(ans + A.M[i][i]) % Mod;
printf("%d\n",ans);
}
return 0;
}
以上是关于[HDU] Tr A的主要内容,如果未能解决你的问题,请参考以下文章