Dijkstra

 1 program dijkstra;
 2 var
 3     a:array[1..100,1..100]of integer;
 4     flag:array[1..100]of boolean;
 5     w,x,n,i,j,min,minn:integer;
 6 begin
 7     readln(n);
 8     for i:=1 to n do
 9     for j:=1 to n do 
10         read(a[i,j]);
11     fillchar(flag,sizeof(flag),false);
12     flag[1]:=true;
13     minn:=1;
14     for x:=2 to n do
15     begin
16         min:=maxint;
17         for i:=2 to n do
18         if (a[1,i]<min)and(flag[i]=false) then
19         begin
20             min:=a[1,i];
21             minn:=i;
22         end;
23         flag[minn]:=true;
24         for j:=1 to n do
25         if (j<>minn) and (a[1,minn]+a[minn,j]<a[1,j]) and(flag[j]=false)             then
26         a[1,j]:=a[1,minn]+a[minn,j];
27     end;
28     for i:=1 to n do
29     write(a[1,i],' ');
30 end.                

 

转载于:https://www.cnblogs.com/OmegaIota/p/4395243.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值