我有 M 点,它们通过 N 行连接。下一个 N 输入行包含不同点对之间的距离。我想找到每对点之间的最小距离之和。
示例输入:
char
示例输出:
5 6
1 2 23
1 3 5
2 3 3
2 4 12
3 4 5
4 5 2
解释
d(1,2)= 5 + 3 = 8
d(1,3)= 5
d(2,3)= 3
d(2,4)= 3 + 5 = 8
d(3,4)= 5
d(4,5)= 2
sum = 8 + 5 + 3 + 8 + 5 + 2 = 31
修改1:
我已使用以下代码将加权图转换为附加矩阵:
31
现在我怎么能找到任意两点之间的最短距离,因为存在连接它们的线?
答案 0 :(得分:1)
使用Floyd-Warshall构建所有对最短路径的矩阵。现在添加矩阵中的所有值并除以2,因为您将计算每个距离两次。
维基页面上的伪代码足以将其转换为java。