思路过得去(个人拙见),但是样例不过,求调
查看原帖
思路过得去(个人拙见),但是样例不过,求调
1098507
zdnzkzl楼主2024/3/2 21:51
#include <iostream>
using namespace std;
const long long mod=1e9+7;
const long long N=105;
long long a[N][N];
long long ans[N][N];
long long n,k;

void quick_pow(){
	while(k>0){
		if(k&1){
			for(int i=1;i<=n;++i)
				for(int j=1;j<=n;++j)
					for(int z=1;z<=n;++z)
						ans[i][j]=(ans[i][j]+a[i][z]*a[z][j])%mod;
	    }
	    for(int i=1;i<=n;++i)
				for(int j=1;j<=n;++j)
					for(int z=1;z<=n;++z)
					    a[i][j]=(a[i][j]+a[i][z]*a[z][j])%mod;
						
		k>>=1;
    }
}
int main(){
	cin>>n>>k;
	for(int i=1;i<=n;++i){
		for(int j=1;j<=n;++j){
			cin>>a[i][j];
		}
	}
	for(int i=1;i<=n;++i) ans[i][i]=1;
	quick_pow();
	for(int i=1;i<=n;++i){
		for(int j=1;j<=n;++j){
			cout<<ans[i][j]%mod<<" ";
		}
		cout<<endl;
	}
	return 0;
}
2024/3/2 21:51
加载中...