文章

1

粉丝

128

获赞

4

访问

9.8k

头像
动态规划-n个结点可以组成多少种树
P1827 复旦大学2019年机试
发布于2021年3月22日 22:25
阅读数 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。

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发