| 比赛 |
五一大礼包 |
评测结果 |
WWTTTTTTTT |
| 题目名称 |
组一辈子乐队 |
最终得分 |
0 |
| 用户昵称 |
LikableP |
运行时间 |
10.291 s |
| 代码语言 |
C++ |
内存使用 |
381.95 MiB |
| 提交时间 |
2026-05-04 11:52:09 |
显示代码纯文本
#include <cstdio>
typedef long long ll;
const int MAXN = 2e5 + 10;
const int MAXK = 310;
const ll MOD = 998244353;
int n, k;
ll a[MAXN], pow[MAXN][MAXK];
ll C[MAXK][MAXK];
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("%lld", &a[i]);
for (int i = 1; i <= n; ++i) {
pow[i][0] = 1;
for (int j = 1; j <= k; ++j) pow[i][j] = pow[i][j - 1] * a[i] % MOD;
}
C[0][0] = 1;
for (int i = 1; i <= k; ++i) {
for (int j = 0; j <= i; ++j) {
C[i][j] = (C[i - 1][j] + C[i - 1][j - 1]) % MOD;
}
}
for (int X = 1; X <= k; ++X) {
ll sum = 0;
for (int L = 1; L <= n; ++L) {
for (int R = L + 1; R <= n; ++R) {
for (int i = 0; i <= X; ++i) {
sum = (sum + C[X][i] * pow[L][i] * pow[R][X - i]) % MOD;
}
}
}
printf("%lld\n", sum);
}
return 0;
}