爆0死循环求助
查看原帖
爆0死循环求助
746104
zzs2731楼主2023/8/29 13:26
#include<bits/stdc++.h>
using namespace std;
int n;
long long k;
int mod=100000007;
struct matrix{
	long long f[150][150];
}a,c;
matrix mul(matrix a,matrix b){
	matrix ret;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			long long sum=0;
			for(int k=1;k<=n;k++){
				sum+=a.f[i][k]*b.f[k][j]%mod;
			}
//			cout<<sum<<' ';
			ret.f[i][j]=sum%mod;
		}
		cout<<endl;
	}
//	cout<<endl;
	return ret;
}
matrix mi(matrix a,int k){
	if(k==1)return a;
	matrix tmp=mi(a,k/2);
	tmp=mul(tmp,tmp);
	if(k%2)tmp=mul(tmp,a);
	return tmp;
}
int main(){
	cin>>n>>k;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			cin>>a.f[i][j];
		}
	}
	c=mi(a,k);
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			cout<<c.f[i][j]<<" ";
		}
		cout<<endl;
	}
	return 0;
}
2023/8/29 13:26
加载中...