题目链接:
http://poj.org/problem?id=1655
题目意思:
给一棵树,求去掉一个节点,形成的多棵树中节点数的最大值最小。
解题思路:
简单树形dp.
dp[i]表示儿子中节点数最多的分支节点数。
sum[i]表示i为根的子树节点总数。
第一遍dfs求出dp和sum,第二遍dfs枚举去掉的节点,max(dp[cur],from) //from表示从父亲方向过来节点数,向下的时候from+sum[cur]-sum[v].
代码:
#include <iostream>
#include<cstdio>
#include&l