Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
48907 | _ | 【AB-1】函数 | C++ | 通过 | 100 | 49 MS | 5676 KB | 708 | 2022-04-20 21:15:11 |
#include <bits/stdc++.h> using namespace std; const int MXN = 60; const int MXD = 7005; const int MXV = MXD << 1; const int DVS = 998244353; int eff[MXN], N, K, k1, k2, tg, dp[MXN][MXV]; int main() { cin >> N >> K >> k1 >> k2; int m1((k1 % 11 + 11) % 11); eff[N + 1] = 1; for (int i(N); i; --i) eff[i] = eff[i + 1] * 1LL * m1 % 11; tg = (1 - eff[2]) * k2 - eff[1] * k1 + MXD; dp[2][MXD] = 1; for (int i(3); i <= N + 1; ++i) { for (int j(-K); j <= K; ++j) { for (int k(max(0, eff[i] * j)); k < min(MXV, MXV - eff[i] * j); ++k) { dp[i][k] = (dp[i][k] + dp[i - 1][k - eff[i] * j]) % DVS; } } } cout << dp[N + 1][tg] << endl; return 0; }