解题思路
树形dpdpdp问题,先建个图。
经过人脑模拟,我们可以发现,要想最大化深度,就得把贡献最大的右兄弟放在兄弟链最后,如本题样例:
所以,对于每个节点 nnn ,以 nnn 为根的子树的最大深度就是子节点个数加上所有以其子节点为根的子树的最大深度,即右兄弟排在一起的长度加上这些兄弟里最有实力的一个所拥有的贡献(放在最后的那个右兄弟的贡献)。当一个节点没有子节点时,它的子树深度只能为000,边界条件出来了,以这些000为基本向上传递子问题的最优解,合并状态,题就解出来了。
注意审题,要求最大值,不是按输入顺序就能算出来的TAT
AC代码