RE是怎么回事啊?哪位大佬帮忙看一下
查看原帖
RE是怎么回事啊?哪位大佬帮忙看一下
1030733
___nyLittleT___楼主2024/1/14 11:44
#include<bits/stdc++.h>
using namespace std;
const int MOD=1e9+7;
int n;
long long k;
struct matrix{
	long long m[105][105];
	matrix(){memset(m,0,sizeof m);}
}s,t;
matrix operator*(const matrix& a,const matrix& b){
	matrix c;
	for(int i=1;i<=105;i++)
		for(int j=1;j<=105;j++)
			for(int kk=1;kk<=105;kk++)
				c.m[i][j]=(c.m[i][j]+a.m[i][kk]*b.m[kk][j]%MOD)%MOD;
	return c;
}
matrix pow_matrix(matrix a,long long b){
	matrix ans;
	for(int i=1;i<=105;i++) ans.m[i][i]=1;
	while(b){
		if(b&1) ans=ans*a;
		a=a*a;
		b>>=1;
	}
	return ans;
}
int main(){
	scanf("%d %lld",&n,&k);
	for(int i=1;i<=n;i++)
		for(int j=1;j<=n;j++)
			scanf("%lld",&s.m[i][j]);
	t=pow_matrix(s,k);
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++) printf("%lld ",t.m[i][j]%MOD);
		printf("\n");
	}
	return 0;
}

记录,求调~

2024/1/14 11:44
加载中...