洛谷 P1044. [NOIP2003 普及组] 栈
原题链接
中等
作者:
下午汶第丶
,
2023-09-19 21:27:34
,
所有人可见
,
阅读 73
#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
const int N = 25;
int f[N][N], n;
// f[i][j]表示以进i个 未进j个
int main(){
cin >> n;
// 初始化 所有数字都进栈时 只能出栈
for (int i = 0; i <= n; i ++)
f[i][0] = 1;
// 先遍历已经进的数字 因为可以不进数字 即空栈 所以二层循环要从0开始
for (int j = 1; j <= n; j ++)
for (int i = 0; i <= n; i ++){
if (i >= 1) f[i][j] = f[i + 1][j - 1] + f[i - 1][j];
if (i == 0) f[i][j] = f[i + 1][j - 1];
}
cout << f[0][n] << endl;
return 0;
}