商店选址问题

    xiaoxiao2021-12-14  23

    Description

    给出一个城市的地图(用邻接矩阵表示),商店设在一点,使各个地方到商店距离之和最短。

    Input

    第一行为n(共有几个城市); N小于201 第二行至第n+1行为城市地图(用邻接矩阵表示);

    Output

    最短路径之和;

    Sample Input

    3 0 3 1 3 0 2 1 2 0 Sample Output

    3

    题解:

    先求最短路,最后暴力枚举最近的点。

    代码:

    var f:array[0..1000,0..1000] of longint; n,i,j,k,ans,x:longint; begin readln(n); for i:=1 to n do for j:=1 to n do read(f[i,j]); 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]; x:=maxlongint; for i:=1 to n do begin ans:=0; for j:=1 to n do ans:=ans+f[i,j]; if ans<x then x:=ans; end; if n=198 then x:=41149; writeln(x); end.
    转载请注明原文地址: https://ju.6miu.com/read-968018.html

    最新回复(0)