代码求调
查看原帖
代码求调
964822
protractor半圆仪楼主2024/4/20 15:24
#include<iostream>
#include<cstring>
using namespace std;
struct juzhen{
    long long data[105][105];
	int x,y;
}a;
int n;
long long k;
juzhen dw(int n)
{
	juzhen ans;
	memset(ans.data,0,sizeof(ans.data));
	ans.x=n,ans.y=n;
	for(int i=1;i<=n;i++) ans.data[i][i]=1;
	return ans;
}
juzhen cheng(juzhen c,juzhen d)
{
    juzhen ans;
    ans.x=c.x,ans.y=d.y;
    int k=c.y;
    for(int i=1;i<=ans.x;i++) for(int j=1;j<=ans.y;j++)
    {
        ans.data[i][j]=0;
        for(int l=1;l<=k;l++) ans.data[i][j]=(ans.data[i][j]+c.data[i][l]*d.data[l][j])%1000000007;
    }
    return ans;
}
juzhen lpow(juzhen c,int d)
{
	juzhen ans=dw(c.x),a_=c;
	while(d)
	{
		if(d&1) ans=cheng(ans,a_);
		a_=cheng(a_,a_);
		d/=2;
	}
	return ans;
}
int main()
{
    cin>>n>>k;
    a.x=n,a.y=n;
    for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) cin>>a.data[i][j];
    a=lpow(a,k);
    for(int i=1;i<=a.x;i++)
	{
		for(int j=1;j<=a.y;j++) cout<<a.data[i][j]<<' ';
		cout<<'\n';
	}
    return 0;
}

哪位大佬调一下谢谢

2024/4/20 15:24
加载中...