按照这篇题解的递推式,我写了一个程序,不过没加滚动数组,最原始的形式,但是全WA为什么?
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 4.2e3 + 7;
int Dp[MAXN][MAXN][2];
int n, p;
int main () {
cin >> n >> p;
Dp[1][1][0] = Dp[1][1][1] = 1;
for (int i = 1; i <= n; i ++) {
for (int j = i; j >= 1; j --)
Dp[i][j][0] = (Dp[i][j][0] + Dp[i - 1][j][1] + Dp[i][j + 1][0]) % p;
for (int j = 1; j <= i; j ++)
Dp[i][j][1] = (Dp[i][j][1] + Dp[i - 1][j][0] + Dp[i][j - 1][1]) % p;
}
int ans = 0;
for (int i = 1; i <= n; i ++)
ans += Dp[n][i][0] + Dp[n][i][1], ans %= p;
cout << ans << '\n';
return 0;
}