HNUSTOJ 1444:树的最长路径



1444: 树的最长路径

时间限制: 1 Sec  内存限制: 128 MB
提交: 18  解决: 7
[提交][状态][讨论版]

题目描述

定义:无向树中结点的路径为该结点所能到达的最远距离;无向树中的最长路径为该树中结点的最大路径。

现给一棵无向树,请求出树的最长路径。

输入

多组测试数据,每组数据有n行,其中n为树的节点数,在第一行。随后有n-1,每行为两个整数a,b (0<=a,b<n),表示ab相连。

输出

每组数据输出一个整数,为树的最长路径,占一行。

样例输入

3
0 1
1 2

样例输出

2

无向无环连通图就是无向树,一开始我想到的是一个比较笨的方法,以每一个点轮流做树的根然后跑迪杰斯特拉或者SPFA,考虑到题目没给数据范围,这样做可能会时间超限,
于是又画了几棵树发现可以用广搜(层次遍历)解决,因为是n-1条边,不用担心给出的是森林,只可能是一棵树,然后遍历到叶子节点时做好标记,并记录路径长度,这里要注
意的是因为给出的树可能只有左子树或者右子树,因此根节点也要标记为“叶子节点”,最后找出保存的路径长度的最大两个相加就是结果了;
代码如下:
posted @ 2017-08-08 09:50  Pretty9  阅读(184)  评论(0编辑  收藏  举报