原本想找一个DP的方法, 可惜答案鱼龙混杂, 良莠不齐, 从BYVoid牛上拷下的代码都是CE.....
无奈, 还是DFS吧.
先找一个点, 然后找到任一个距离其最远的点, 再以这点为起点搜索距其最远的点, 这两个点之间的路径就是树网的直径__之一.
我咨询奇异夸克大牛时, 他想到的是贪心的方法.
先搜一遍, 然后分情况讨论.
1. 若此时有数个点距起点最远, 那么起点就是中心, 且唯一.
2. 否则, 向那个最远点所在的子树靠近, 距这棵子树上的点距离-1,同深度其他子树+1.
这个算法真的很好(它比两次DFS的理由清晰得多, 复杂度也低), 不过像我这样的菜, 实现它是有一定难度的......以后再说.