WA28分求调(玄关)
查看原帖
WA28分求调(玄关)
759765
jinzihan0127楼主2025/7/22 15:26

rt,下载数据点1发现输出出现负数,求调 (测试点7、8、11 AC,其他WA)

#include<bits/stdc++.h>
using namespace std;
const int mod=1e9+7;
long long n,q,a[105][105],ans[105][105],t[105][105];
int main() {
	cin>>n>>q;
	for(int i=1; i<=n; i++)
		for(int j=1; j<=n; j++) {
			cin>>a[i][j];
			if(i==j)ans[i][j]=1;
		}
	while(q!=0) {
		if(q&1) {
			for(int i=1; i<=n; i++)
				for(int j=1; j<=n; j++) {
					t[i][j]=0;
					for(int k=1; k<=n; k++)t[i][j]+=ans[i][k]*a[k][j];
					t[i][j]%=mod;
				}
			for(int i=1; i<=n; i++)
				for(int j=1; j<=n; j++)ans[i][j]=t[i][j];
		}
		for(int i=1; i<=n; i++)
			for(int j=1; j<=n; j++) {
				t[i][j]=0;
				for(int k=1; k<=n; k++)t[i][j]+=a[i][k]*a[k][j];
				t[i][j]%=mod;
			}
		for(int i=1; i<=n; i++)
			for(int j=1; j<=n; j++)a[i][j]=t[i][j];
		q>>=1;
	}
	for(int i=1; i<=n; i++) {
		for(int j=1; j<=n; j++)cout<<ans[i][j]<<" ";
		cout<<"\n";
	}
	return 0;
}
2025/7/22 15:26
加载中...