Description
给出一个城市的地图(用邻接矩阵表示),商店设在一点,使各个地方到商店距离之和最短。
Input
第一行为n(共有几个城市); N小于201
第二行至第n+1行为城市地图(用邻接矩阵表示);
Output
最短路径之和;
Sample Input
3
0 3 1
3 0 2
1 2 0
Sample Output
3
先floyd,然后判断找最小即可。
var
f:array [0..201,0..201] of longint;
i,j,k,n,ans,min:longint;
begin
readln(n);
for i:=1 to n do
begin
for j:=1 to n do read(f[i,j]);
readln;
end;
for k:=1 to n do
for i:=1 to n do
for j:=1 to n do
if f[i,k]+f[k,j]<f[i,j] then
f[i,j]:=f[i,k]+f[k,j];
min:=maxlongint;
for i:=1 to n do
begin
ans:=0;
for j:=1 to n do ans:=ans+f[i,j];
if ans<min then min:=ans;
end;
writeln(min);
end.