Submission #17638835
Source Code Expand
Copy
#include <bits/stdc++.h>using namespace std;using ll = long long;const ll MAX = 350;ll MOD = 998244353;ll INV[MAX] = {}, FACTORIAL[MAX] = {}, FACTORIAL_INV[MAX] = {};void calc_init() {INV[1] = 1;FACTORIAL[0] = FACTORIAL[1] = 1;FACTORIAL_INV[0] = FACTORIAL_INV[1] = 1;for (int i = 2; i < MAX; i++) {ll q = MOD / i, r = MOD % i;INV[i] = (-INV[r] * q) % MOD;INV[i] = (INV[i] + MOD) % MOD;FACTORIAL[i] = (i * FACTORIAL[i - 1]) % MOD;FACTORIAL_INV[i] = (INV[i] * FACTORIAL_INV[i - 1]) % MOD;}}
#include <bits/stdc++.h> using namespace std; using ll = long long; const ll MAX = 350; ll MOD = 998244353; ll INV[MAX] = {}, FACTORIAL[MAX] = {}, FACTORIAL_INV[MAX] = {}; void calc_init() { INV[1] = 1; FACTORIAL[0] = FACTORIAL[1] = 1; FACTORIAL_INV[0] = FACTORIAL_INV[1] = 1; for (int i = 2; i < MAX; i++) { ll q = MOD / i, r = MOD % i; INV[i] = (-INV[r] * q) % MOD; INV[i] = (INV[i] + MOD) % MOD; FACTORIAL[i] = (i * FACTORIAL[i - 1]) % MOD; FACTORIAL_INV[i] = (INV[i] * FACTORIAL_INV[i - 1]) % MOD; } } vector<vector<ll>> memo(310, vector<ll>(310, -1)); ll nCk(ll n, ll k) { if (memo[n][k] != -1) return memo[n][k]; ll ans = FACTORIAL[n]; ans = (ans * FACTORIAL_INV[k]) % MOD; ans = (ans * FACTORIAL_INV[n - k]) % MOD; memo[n][k] = ans; return ans; } int main() { ios::sync_with_stdio(false); cin.tie(0); ll N; cin >> N; ll K; cin >> K; vector<ll> A(N); for (ll i = 0; i < N; i++) cin >> A[i]; calc_init(); vector<vector<ll>> p(K + 1, vector<ll>(N, 1)); for (ll i = 0; i < K; i++) { for (ll j = 0; j < N; j++) { p[i + 1][j] = (p[i][j] * A[j]) % MOD; } } vector<ll> s(K + 1, 0); for (ll i = 0; i < K + 1; i++) { for (ll j = 0; j < N; j++) { s[i] = (s[i] + p[i][j]) % MOD; } } for (ll i = 1; i <= K; i++) { ll sum = 0; for (ll j = 0; j <= i; j++) { ll temp; temp = (s[j] * s[i-j] - s[i] + MOD) % MOD; temp = temp * INV[2] % MOD; temp = temp * nCk(i, j) % MOD; sum = (sum + temp) % MOD; } cout << sum << '\n'; } return 0; }
Submission Info
Submission Time | |
---|---|
Task | D - Powers |
User | nakaken88 |
Language | C++ (GCC 9.2.1) |
Score | 600 |
Code Size | 1647 Byte |
Status | AC |
Exec Time | 1561 ms |
Memory | 477764 KB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 600 / 600 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | 00_sample_01, 00_sample_02, 00_sample_03 |
All | 00_sample_01, 00_sample_02, 00_sample_03, 10_small_01, 10_small_02, 10_small_03, 10_small_04, 10_small_05, 10_small_06, 10_small_07, 10_small_08, 10_small_09, 10_small_10, 20_random_01, 20_random_02, 20_random_03, 20_random_04, 20_random_05, 20_random_06, 20_random_07, 20_random_08, 20_random_09, 20_random_10, 30_max_01, 30_max_02, 30_max_03, 30_max_04, 30_max_05, 31_max_01, 31_max_02 |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
00_sample_01 | AC | 10 ms | 4384 KB |
00_sample_02 | AC | 3 ms | 4268 KB |
00_sample_03 | AC | 2 ms | 4336 KB |
10_small_01 | AC | 8 ms | 4512 KB |
10_small_02 | AC | 8 ms | 4528 KB |
10_small_03 | AC | 13 ms | 4540 KB |
10_small_04 | AC | 6 ms | 4380 KB |
10_small_05 | AC | 3 ms | 4388 KB |
10_small_06 | AC | 11 ms | 4408 KB |
10_small_07 | AC | 2 ms | 4252 KB |
10_small_08 | AC | 6 ms | 4464 KB |
10_small_09 | AC | 4 ms | 4508 KB |
10_small_10 | AC | 4 ms | 4380 KB |
20_random_01 | AC | 479 ms | 149120 KB |
20_random_02 | AC | 559 ms | 173968 KB |
20_random_03 | AC | 24 ms | 8916 KB |
20_random_04 | AC | 592 ms | 185224 KB |
20_random_05 | AC | 217 ms | 65728 KB |
20_random_06 | AC | 954 ms | 297520 KB |
20_random_07 | AC | 262 ms | 80968 KB |
20_random_08 | AC | 877 ms | 273796 KB |
20_random_09 | AC | 88 ms | 26096 KB |
20_random_10 | AC | 312 ms | 95244 KB |
30_max_01 | AC | 1561 ms | 475568 KB |
30_max_02 | AC | 1532 ms | 474620 KB |
30_max_03 | AC | 1535 ms | 476188 KB |
30_max_04 | AC | 1523 ms | 471464 KB |
30_max_05 | AC | 1498 ms | 465328 KB |
31_max_01 | AC | 1540 ms | 477764 KB |
31_max_02 | AC | 1543 ms | 477736 KB |