城市交通

题意

有n个城市,编号1~n,有些城市之间有路相连,有些则没有,有路则当然有一个距离。现在规定只能从编号小的城市到编号大的城市,问你从编号为1的城市到编号为n的城市之间的最短距离是多少?


分析

if map[j,i]<>0 then

if dis[j]+map[j,i]<min thenmin:=dis[j]+map[j,i];

dis[i]:=min;

结果=dis[n];


var
dis:array[1..100]of longint;
map:array[1..100,1..100]of longint;
n,i,j,min:longint;
begin
    readln(n);
    for i:=1 to n do
    begin
        for j:=1 to n do
        read(map[i,j]);
        readln;
    end;
    dis[1]:=0;
    for i:=2 to n do
    begin
        min:=maxint;
        for j:=1 to i-1 do
        if map[j,i]<>0 then
        if dis[j]+map[j,i]<min then min:=dis[j]+map[j,i];
        dis[i]:=min;
    end;
    writeln(dis[n]);
end.

原文地址:https://www.cnblogs.com/YYC-0304/p/9500179.html