PROBLEM
http://www.oi.edu.pl/old/ceoi2004/problems/jou.pdf
分析
这题属于需要一些思考的题目。对于这道题目,我们要了解到这个图其实就是一棵树。如何想到这是树?题目中又这样几句话:
There are n cities in Byteland.
There are only n-1 roads, but connect the cities in such a way that is possible to travel from each city to any other city.
很容易发现这是典型的树的特征。当然,如果还不能看出来,随手画几个图就会发现,要满足这两个条件,这个图一定是一棵树。
那么这道题的算法就是树的遍历,根据题目特征,很容易想到,利用DFS解决这道题目。
那么问题来了,如何计算最短路径呢?这个时候可能很难想到,那么可以简单地画几棵树。
这是两种极端情况,比较容易思考。经过不断尝试和总结(写一些数据),会发现:
MinLength = EdgeLengthSum*2 - MaxEdgeLength
然后程序就变得非常简单了。