蒟蒻求助
查看原帖
蒟蒻求助
315005
White_gugu楼主2021/7/6 20:47
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define mod (long long)(1000000007)
using namespace std;
long long n,k;
long long a[202][220];
long long res[202][220];
long long tot[202][202];
void ksm(int x,int y)
{
	while(y)
	{
		if(y&1)
		{
			for(int i=1;i<=x;i++)
			 for(int j=1;j<=x;j++)
			  for(int k=1;k<=x;k++)
			  tot[i][j]=(tot[i][j]+(res[i][k]*a[k][j])%mod)%mod;
			for(int i=1;i<=x;i++)
			 for(int j=1;j<=x;j++)
			 res[i][j]=tot[i][j],tot[i][j]=0;
		}
		for(int i=1;i<=x;i++)
		 for(int j=1;j<=x;j++)
		  for(int k=1;k<=x;k++)
		  tot[i][j]=(tot[i][j]+(a[i][k]*a[k][j])%mod)%mod;
		for(int i=1;i<=x;i++)
		 for(int j=1;j<=x;j++)
		 a[i][j]=tot[i][j],tot[i][j]=0;
		 y/=2;
	}
	return;
}
int main()
{
	scanf("%lld %lld",&n,&k);
	for(int i=1;i<=n;i++)
	 for(int j=1;j<=n;j++)
	 scanf("%lld",&a[i][j]);
	for(int i=1;i<=n;i++)
	res[i][i]=1;
	 ksm(n,k);
	 for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
		printf("%lld ",res[i][j]);
		printf("\n");
	}
}

请各位大佬帮忙

为什么会爆0啊(难道是模错了?)

2021/7/6 20:47
加载中...