UOJ Logo

NOI.AC

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#203786#2310. 守序划分问题tkswls1001708ms3244kbC++11774b2024-03-19 11:10:062024-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];
}

详细

小提示:点击横条可展开更详细的信息

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