1 条题解
-
0
#include<bits/stdc++.h> using namespace std; typedef long long ll; const int mod=998244353; int n; struct N{ ll a[210][210]; N(){memset(a,0,sizeof(a));}; }; N operator*(N a,N b){ N c; for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ for(int k=1;k<=n;k++){ c.a[i][j]=(c.a[i][j]+a.a[i][k]*b.a[k][j]%mod)%mod; } } } return c; } N qpow(N a,ll b){ N ans; for(int i=1;i<=n;i++)ans.a[i][i]=1; for(;b;b>>=1,a=a*a)if(b&1)ans=ans*a; return ans; } int main(){ ios::sync_with_stdio(0); cin.tie(0); cin>>n; ll k; cin>>k; N a; for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ cin>>a.a[i][j]; } } a=qpow(a,k); for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ cout<<a.a[i][j]<<" \n"[j==n]; } } return 0; }
- 1
信息
- ID
- 3312
- 时间
- 5000ms
- 内存
- 1024MiB
- 难度
- 10
- 标签
- 递交数
- 8
- 已通过
- 4
- 上传者