Gravatar
终焉折枝
积分:1860
提交:230 / 406

Pro4397  组一辈子乐队

#include<iostream>
using namespace std;

#define int long long
const int M = 998244353;
const int K = 305;
const int N = 2 * 1e5 + 5;
int C[K][K];
int a;
int S[K];
int n, k;

int qpow(int a, int b){
	int res = 1;
	while(b){
		if(b & 1) (res *= a) %= M;
  		(a *= a) %= M;
		b >>= 1;
	}
	return res;
}

void init(){
	for(int i = 0;i <= k;i ++){
		C[i][0] = 1;
		for(int j = 1;j <= i;j ++){
			C[i][j] = (C[i - 1][j] + C[i - 1][j - 1]) % M;
		}
	}
}

signed main(){
	
	cin >> n >> k;
	
	for(int i = 1;i <= n;i ++){
		cin >> a;
		int cnt = 1;
		for(int x = 0;x <= k;x ++){
			S[x] = (S[x] + cnt) % M;
			cnt = (cnt * a) % M;
		}
	}
	
	init();
	
	
	for(int x = 1;x <= k;x ++){
		int ans = 0;
		for(int i = 0;i <= x;i ++){
			ans = (ans + (C[x][i] * S[i]) % M * S[x - i] % M) % M;
		}
		ans = (ans + M - qpow(2, x) * S[x] % M) % M;
		cout << ans * qpow(2, M - 2) % M << '\n';
	}
	
	
	
	return 0;
}

2026-05-04 16:43:20    
我有话要说
暂无人分享评论!