熬夜问个问题,希望早期的大佬能帮我解一下
  • 板块学术版
  • 楼主Phrvth
  • 当前回复2
  • 已保存回复2
  • 发布时间2023/7/20 00:12
  • 上次更新2023/11/3 08:45:24
查看原帖
熬夜问个问题,希望早期的大佬能帮我解一下
520544
Phrvth楼主2023/7/20 00:12

按照这篇题解的递推式,我写了一个程序,不过没加滚动数组,最原始的形式,但是全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;
}
2023/7/20 00:12
加载中...