ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#203786 | #2310. 守序划分问题 | tkswls | 100 | 1708ms | 3244kb | C++11 | 774b | 2024-03-19 11:10:06 | 2024-03-19 12:32:43 |
answer
#include <bits/stdc++.h>
#pragma GCC optimize(2)
using namespace std;
int f[2][505][505], n, m;
const int mod = 998244353;
signed main() {
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int now = 1, pre = 0;
cin >> n >> m;
f[pre][m][0] = 1;
for (int i = 1; i <= n; i++, swap(now, pre)) {
memset(f[now], 0, sizeof(f[now]));
for (int j = 0; j <= m; j++) {
for (int k = ((i == n) ? (0) : (1)); j + k <= m; k++) {
f[now][j][k] = 1ll * f[pre][j][k] * k % mod;
f[now][j][k] = (f[now][j][k] + 1ll * f[pre][j][k + 1] * (k + 1) % mod) % mod;
if (k) f[now][j][k] = (1ll * f[now][j][k] + f[pre][j + 1][k - 1] % mod) % mod;
f[now][j][k] = (1ll * f[now][j][k] + f[pre][j + 1][k] % mod) % mod;
}
}
}
cout << f[pre][0][0];
}
Details
小提示:点击横条可展开更详细的信息
Test #1:
score: 10
Accepted
time: 0ms
memory: 3240kb
input:
5 2
output:
11
result:
ok 1 number(s): "11"
Test #2:
score: 10
Accepted
time: 9ms
memory: 3240kb
input:
100 50
output:
828608264
result:
ok 1 number(s): "828608264"
Test #3:
score: 10
Accepted
time: 6ms
memory: 3244kb
input:
99 70
output:
252206044
result:
ok 1 number(s): "252206044"
Test #4:
score: 10
Accepted
time: 28ms
memory: 3244kb
input:
500 2
output:
308058822
result:
ok 1 number(s): "308058822"
Test #5:
score: 10
Accepted
time: 27ms
memory: 3240kb
input:
500 3
output:
365521874
result:
ok 1 number(s): "365521874"
Test #6:
score: 10
Accepted
time: 25ms
memory: 3240kb
input:
494 3
output:
699461743
result:
ok 1 number(s): "699461743"
Test #7:
score: 10
Accepted
time: 36ms
memory: 3244kb
input:
500 49
output:
734017349
result:
ok 1 number(s): "734017349"
Test #8:
score: 10
Accepted
time: 147ms
memory: 3244kb
input:
500 195
output:
630247056
result:
ok 1 number(s): "630247056"
Test #9:
score: 10
Accepted
time: 794ms
memory: 3240kb
input:
500 498
output:
248004
result:
ok 1 number(s): "248004"
Test #10:
score: 10
Accepted
time: 636ms
memory: 3240kb
input:
491 448
output:
732429418
result:
ok 1 number(s): "732429418"
Extra Test:
score: 0
Extra Test Passed