为什么会RE???

P2592 [ZJOI2008] 生日聚会

补一下代码: ```cpp #include <cstdio> #include <cstring> #include <iostream> #include <cmath> using namespace std; typedef unsigned long long ULL; typedef long long LL; LL dp[2][152][22][22]; LL n, m, k, ans; int main() { scanf("%lld%lld%lld", &n, &m, &k); dp[0][0][0][0] = 1; for (LL i = 0; i < n + m; i++) for (LL j = 0; j <= i; j++) for (LL h = 0; h <= min(k, j); h++) for (LL o = 0; o <= min(k, i - j); o++) { if (j + 1 <= n && h + 1 <= k) (dp[(i + 1) % 2][j + 1][h + 1][max(o - 1, 0LL)] += dp[i % 2][j][h][o]) %= 12345678; if (i - j + 1 <= m && o + 1 <= k) (dp[(i + 1) % 2][j][max(h - 1, 0LL)][o + 1] += dp[i % 2][j][h][o]) %= 12345678; dp[i % 2][j][h][o] = 0; } for (int h = 0; h <= min(n + m, k); h++) for (int o = 0; o <= min(n + m, k); o++) (ans += dp[(n + m) % 2][n][h][o]) %= 12345678; printf("%lld", ans); return 0; } ```
by Rhein_E @ 2018-09-30 10:45:03


应该是访问到了dp[2],但是看代码也没啥问题啊
by ACalgorithm @ 2018-09-30 11:11:28


数组开大点总是好
by dinghongyu @ 2018-09-30 12:03:45


道理很简单, n+m 会使第二维访问到 300 ~~虽说那些都是无用的状态~~ 所以第二维开到300(多一点,300肯定不行)就能AC啦
by LLouver @ 2019-11-05 21:07:51


@[RE_自动机](/user/40201)
by LLouver @ 2019-11-05 21:08:02


|