比赛 矩阵乘法练习赛 评测结果 AATTTTTTTT
题目名称 矩阵幂之和 最终得分 20
用户昵称 xxz 运行时间 24.158 s
代码语言 C++ 内存使用 3.17 MiB
提交时间 2025-04-28 21:50:41
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
unsigned long long n,k,mod,a[31][31],b[31][31],qh[31][31];
void juzhen(unsigned long long x){
	int c[31][31]={0};
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			for(int k=1;k<=n;k++){
				c[i][j]+=b[i][k]*a[k][j]%mod;
			}
		}
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			b[i][j]=c[i][j]%mod;
		}
	}
}

int main(){
	freopen("matrix_sum.in","r",stdin);freopen("matrix_sum.out","w",stdout);
	cin>>n>>k>>mod;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			cin>>a[i][j];
			b[i][j]=a[i][j]%mod;
			qh[i][j]=a[i][j]%mod;
		}
	}
	for(int i=2;i<=k;i++){ 
		juzhen(i);
		for(int j=1;j<=n;j++){
			for(int k=1;k<=n;k++){
				qh[j][k]+=b[j][k];
				qh[j][k]%=mod;
			}
		}
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			cout<<qh[i][j]<<" ";
		}
		cout<<endl;
	}
}