补一下代码:
```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