最近在做几道题目发现一道题目自己怎么想都没有思路。
问题大概是 :
地图上一共有N个点 , 一个人需要走过其中的M(100000>=N>=M>= 2)个点
若要求输入的第一行是两个整数分别N点的个数 和需走的M个点的个数
第二行输入的是 这M个点分别所属的号码
下面的N-1行是两个表示这两个点之间是相连的
如果此人可以从任意一个点出发且每两个点之间只需要走一分钟 , 那么走完M个点至少需要多少时间?
例如:
8 2(共八个点 , 需要走其中两个)
5 2(需要走的两个点的号码为5 和 2)
0 1(点0和1相连 ,以下均是如此)
0 2
2 3
4 3
6 1
1 5
7 3
那么走完点5和2所需最短路程为5 -1-0-2 , 共需3分钟
可以先用Floyd算法求出给定图的某点到某点之间的最短路径,然后将需要走的每两个点之间的最短距离相加或许可以