文章
1
粉丝
128
获赞
4
访问
9.8k
#include <cstdio>
long long dp[25] = { 0 };
int main() {
int n;
scanf("%d", &n);
dp[0] = dp[1] = 1; //边界
for (int i = 2; i <= n; i++) { //状态转换
long long ans = 0;
for (int j = 0; j < i; j++) {
ans += dp[j] * dp[i - j - 1];
}
dp[i] = ans;
}
printf("%lld", dp[n]);
return 0;
}
可以用动态规划做,根结点占用一个结点。剩下两边可以用的结点分配为【i】【n-i-1】个。i从0到n-1。
登录后发布评论
暂无评论,来抢沙发