Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
33664 | 23级逯一鸣 | 【S】set | C++ | 通过 | 100 | 7 MS | 348 KB | 949 | 2024-10-18 13:47:05 |
#include <iostream> #include <vector> using namespace std; using i64 = long long; constexpr int MOD = 998244353; inline void add(int& x, int y, int mod = MOD) { x = (x + y) % mod; } inline void mul(int& x, int y, int mod = MOD) { x = x * (i64)y % mod; } int power(int x, int y, int mod = MOD) { int res = 1; for (; y > 0; y >>= 1, mul(x, x, mod)) { if (y & 1) mul(res, x, mod); } return res; } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); int n; cin >> n; int sum = n * (n + 1) / 2; vector<int> dp(sum + 1); dp[0] = 1; for (int i = 1; i <= n; ++i) { for (int j = sum; j >= i; --j) add(dp[j], dp[j - i], MOD - 1); } int ans = 1; for (int i = 1; i <= sum; ++i) mul(ans, power(i, dp[i])); cout << ans << '\n'; return 0; }