商店选址问题
Time Limit:10000MS Memory Limit:65536K
Total Submit:231 Accepted:51
Case Time Limit:1000MS
Description
给出一个城市的地图(用邻接矩阵表示),商店设在一点,使各个地方到商店距离之和最短。
Input
第一行为n(共有几个城市); N小于201
第二行至第n+1行为城市地图(用邻接矩阵表示);
Output
最短路径之和;
Sample Input
3
0 3 1
3 0 2
1 2 0
Sample Output
3
(1) 用floyd求出每一顶点Vi至其它顶点的距离表;
(2) 求出与每一个顶点Vi的最大距离e(Vi);
(3) 使e(Vi)达到最小的顶点Vk,Vk就是图的中心。
const maxn=300; var a:array[0..maxn,0..maxn] of longint; i,j,k,n,m,x,s,max:longint; begin readln(n); for i:=1 to n do for j:=1 to n do read(a[i,j]); for k:=1 to n do for i:=1 to n do for j:=1 to n do if a[i,k]+a[k,j]<a[i,j] then begin a[i,j]:=a[i,k]+a[k,j]; end; max:=maxlongint; for i:=1 to n do begin for j:=1 to n do s:=s+a[i,j]; if s<max then max:=s; s:=0; end; writeln(max); end.