| 比赛 |
五一大礼包 |
评测结果 |
AAAAAAAAAA |
| 题目名称 |
组一辈子乐队 |
最终得分 |
100 |
| 用户昵称 |
RpUtl |
运行时间 |
3.057 s |
| 代码语言 |
C++ |
内存使用 |
5.78 MiB |
| 提交时间 |
2026-05-04 10:52:47 |
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
const int mod=998244353;
const int N=2e5+10;
const int inv2=(mod+1)/2;
typedef long long ll;
int n,k;
ll a[N],sk[305],sum[305],C[305][305];
int main(){
freopen("MyGo.in","r",stdin);
freopen("MyGo.out","w",stdout);
scanf("%d %d",&n,&k);
for(int i=1;i<=n;i++)scanf("%d",a+i);
for(int i=0;i<=300;i++){
C[i][0]=C[i][i]=1;
for(int j=1;j<i;j++){
C[i][j]=(C[i-1][j-1]+C[i-1][j])%mod;
}
}
for(int i=1;i<=n;i++){
ll prod=1,val=1;
ll bas=2*a[i]%mod;
(sk[0]+=1)%=mod;
(sum[0]+=1)%=mod;
for(int j=1;j<=k;j++){
(prod*=a[i])%=mod;
(sk[j]+=prod)%=mod;
(val*=bas)%=mod;
(sum[j]+=val)%=mod;
}
}
for(int i=1;i<=k;i++){
ll ans=0;
for(int j=0;j<=k;j++)(ans+=C[i][j]*sk[j]%mod*sk[i-j]%mod)%=mod;
ans=((ans-sum[i]+mod)%mod)*inv2%mod;
printf("%lld\n",ans);
}
return 0;
}