Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
33073 | a+qazolite | 【S】T1 | C++ | 运行超时 | 70 | 1000 MS | 198900 KB | 1349 | 2024-10-04 13:19:20 |
#include <bits/stdc++.h> using namespace std; const int N = 505, M = 1e5 + 5, MOD = 998244353; int n, m, ans; int C[M + N][N], f[M][N], sq[M]; inline int madd(int x, int y) { return x + y - (x + y > MOD ? MOD : 0); } inline int mmul(int x, int y) { return 1ll * x * y % MOD; } int main() { cin >> n >> m; for (int i = 0; i <= m + n; i++) C[i][0] = 1; for (int i = 1; i <= m + n; i++) for (int j = 1; j <= n; j++) C[i][j] = madd(C[i - 1][j], C[i - 1][j - 1]); // for (int i = 0; i <= n; i++) // f[0][i] = 1; // for (int i = 1; i <= n + m; i++) // for (int j = 1; j <= n; j++) // cout << i << ' ' << j << ' ' << C[i][j] << endl; // for (int i = 1; i <= m; i++) // for (int j = 1; j <= n; j++) // f[i][j] = C[i + j - 1][j - 1]; for (int i = 0; i <= m; i++) sq[i] = 4ll * i * i % MOD; for (int i = 1; i <= n; i++) for (int j = i; j <= m; j++) ans = madd(ans, mmul(mmul(mmul(mmul(C[m - j + n - 1][n - 1], C[j - 1][i - 1]), C[j + n - i - 1][n - i - 1]), C[n][n - i]), sq[j])); // cout << mmul(mmul(mmul(mmul(f[m - 1][n], C[0][0]), f[n - 1][1]), f[1][n - 1 + 1]), 4ll * 1 * 1 % MOD) << endl; // cout << f[m - 1][n] << ' ' << C[0][0] << ' ' << f[1][n - 1] << ' ' << f[1][n - 1 + 1] << ' ' << 4 << endl; // cout << f[1][3] << endl; // cout << C[3][2] << endl; cout << ans << endl; return 0; }