比赛 五一大礼包 评测结果 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;
}