【树形DP】BZOJ 1131 Sta

题目内容

给出一个\(N\)个点的树,找出一个点来,以这个点为根的树时,所有点的深度之和最大

输入格式

给出一个数字\(N\),代表有\(N\)个点。\(N \le 1000000\)。下面\(N-1\)条边。

输出格式

输出你所找到的点,如果具有多个解,请输出编号最小的那个。

样例输入

8
1 4
5 6
4 5
6 7
6 8
2 4
3 4

样例输出

7

思路

看到\(N \le 1000000\),只能是用\(O(N)\)的效率了。
假设当前得到的答案在结点u,要把答案转移到子结点v。
这样就会有\(n-size[v]\)的节点深度+1,\(size[v]\)的节点深度-1。
变化就是\(n-2size[v]\)的深度和。
从上向下dp。

猜你喜欢

转载自www.cnblogs.com/Midoria7/p/12686752.html