树形DP题,做的有些艰难,以前没怎么做过这方面的题目,有些理不清楚,题意很简单,就是给你一些电脑,每两台电脑之间若要连通是需要一定的权值的,把这些电脑按照input连在一起,形成一颗树,问树中每一个节点 到另一个节点(不确定是哪个几点)的距离值中最大距离,
我们知道每一个节点最大值无非来自两个地方,1:来自于他的子树中2;从他父亲节点过来的,但是有个地方要注意,从父节点过来的有可能是直接的,也有可能是父亲的最大距离加上他与父亲的距离,意思就是次长距离加上他与父亲的距离,所以需要两边DFS,第一次从他子树中寻找出最大距离跟次大距离,然后第二次DFS直接对父亲过来的进行更新即可
#include
#include
#include
#include
#include
#include
#include
#include
#include