社区讨论
听取 WA 声一片
P5550Chino的数列参与者 1已保存回复 1
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @mk9fuq9e
- 此快照首次捕获于
- 2026/01/11 15:54 上个月
- 此快照最后确认于
- 2026/01/15 13:50 上个月
全 WA,求调
CPP#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N=80+5;
int n;
struct mj {
int A[N][N];
void clear() {
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j)
A[i][j]=0;
}
void reset() {
clear();
for(int i=1;i<=n;++i)
A[i][i]=1;
}
mj operator *(const mj &x) const {
mj res;
res.clear();
for(int i=1;i<=n;++i)
for(int k=1;k<=n;++k)
for(int j=1;j<=n;++j)
res.A[i][j]=res.A[i][j]+A[i][k]*x.A[k][j];
return res;
}
}P,Q,Z,mul,M;
mj qpow(mj a,int b) {
mj ans;
ans.reset();
while(b) {
if(b&1) ans=ans*a;
a=a*a,b>>=1;
}
return ans;
}
signed main() {
ios::sync_with_stdio(false);
cin.tie(0);
int s,m,k;
cin>>n>>s>>m>>k;
M.clear();
for(int i=1;i<=n;++i)
cin>>M.A[i][1];
P.reset();
P.A[s][m]=1,P.A[s][s]=0;
P.A[m][s]=1,P.A[m][m]=0;
Q.clear(),Q.A[1][n]=1;
for(int i=1;i<n;++i)
Q.A[i+1][i]=1;
Z=P*Q;
/*
for(int i=1;i<=n;++i) {
for(int j=1;j<=n;++j)
cout<<Z.A[i][j]<<" ";
cout<<'\n';
}
cout<<'\n';
*/
mul=qpow(Z,k);
M=mul*M;
for(int i=1;i<=n;++i)
cout<<M.A[i][1]<<" ";
cout<<'\n';
return 0;
}
回复
共 1 条回复,欢迎继续交流。
正在加载回复...