大体思路:
1. 题目给的图是将“城”作为顶点,而解题需要将“区域”作为顶点;
2.根据输入得到图的结构(关键是判断两个区域是否相邻),相邻的区域权值为1;
3.用Floyd计算任意两点的最短距离;
4.计算每个人到每个顶点(即“区域”)的最短距离;
5.求最终结果。
注:110ms和94ms(效率优化后)是使用Floyd算法,而219ms是使用回溯+剪支算法。
源代码如下:
大体思路:
1. 题目给的图是将“城”作为顶点,而解题需要将“区域”作为顶点;
2.根据输入得到图的结构(关键是判断两个区域是否相邻),相邻的区域权值为1;
3.用Floyd计算任意两点的最短距离;
4.计算每个人到每个顶点(即“区域”)的最短距离;
5.求最终结果。
注:110ms和94ms(效率优化后)是使用Floyd算法,而219ms是使用回溯+剪支算法。
源代码如下: