Luogu 1044
题目分析:
- 设第 k k k个小球是最后一个出列的,比 k k k早入管的有 f [ k − 1 ] f[k-1] f[k−1]中出管方式,晚入管的有 f [ n − k ] f[n-k] f[n−k]中方式
- f [ 0 ] = f [ 1 ] = 1 f[0]=f[1]=1 f[0]=f[1]=1
- 这就是卡特兰数
Code:
#include <bits/stdc++.h>
using namespace std;
int n;
long long f[20];
void readda_() {
scanf("%d",&n);
f[0]=f[1]=1;
for(register int i=2;i<=n;++i) {
for(register int j=0;j<i;++j) {
f[i]+=f[j]*f[i-j-1];
}
}
printf("%lld",f[n]);
}
int main() {
readda_();
return 0;
}