Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
26968 gaochunzhen 【BJ】T3 C++ 运行超时 95 1956 MS 2548 KB 1529 2024-02-27 21:19:30

Tests(19/20):


#include <bits/stdc++.h> using namespace std; typedef long long LL; const int N = 1e5 + 9, M = 321, Mod = 998244353; int fpow(int a, int b = Mod - 2) { int res = 1; while (b) { if (b & 1) res = 1ll * res * a % Mod; a = 1ll * a * a % Mod, b >>= 1; } return res; } int n, m, K, f[2][M][M], g[2][M][M], fl; signed main() { scanf("%d%d%d", &n, &m, &K); if (n >= m) { printf("0\n"); return 0; } f[0][0][0] = 1; for (int i = 0; i < m; i++) { fl ^= 1; for (int j = 0; j <= n; j++) { for (int k = 0; k <= n; k++) f[fl][j][k] = g[fl][j][k] = 0; } for (int j = 0; j <= n; j++) { for (int k = 0; k <= j; k++) { (f[fl][j][k] += f[fl ^ 1][j][k]) %= Mod; (f[fl][j + 1][k] += f[fl ^ 1][j][k]) %= Mod; (f[fl][j][k + 1] += f[fl ^ 1][j][k]) %= Mod; (f[fl][j + 1][k + 1] += f[fl ^ 1][j][k]) %= Mod; (g[fl][j][k] += g[fl ^ 1][j][k]) %= Mod; (g[fl][j + 1][k] += g[fl ^ 1][j][k]) %= Mod; (g[fl][j][k + 1] += g[fl ^ 1][j][k]) %= Mod; (g[fl][j + 1][k + 1] += g[fl ^ 1][j][k]) %= Mod; } } for (int j = 0; j <= n; j++) { for (int k = 0; k <= j; k++) { g[fl][j][k] = (g[fl][j][k] + 1ll * fpow(j - k, K) * f[fl][j][k]) % Mod; } } } printf("%d\n", g[fl][n][n]); return 0; }


测评信息: