level 3
神秘的落叶
楼主
program p_4(input,output);
var
i1,j,n,ji:integer;
a:array[1..100,1..100]of integer;
dit:array[1..100]of integer;
procedure dijk(i:integer);
var j,k,min:integer;
begin
k:=32767;
if ji > n then exit;
for j:=1 to n do
if a[i,j]<>0 then
begin
if a[i,j]+dit[i]<dit[j] then dit[j]:=a[i,j]+dit[i];
if k>a[i,j] then begin k:=a[i,j];min:=j;end;
end;
ji:=ji+1;
a[i,min]:=32767;
a[min,i]:=32767;
dijk(min);
end;
begin
ji:=0;
read(n);
for i1:=1 to n do
dit[i1]:=32766;
for i1:=1 to n do
for j:=1 to n do
read(a[i1,j]);
readln(i1,j);
dit[i1]:=0;
dijk(i1);
writeln(dit[j]);
end.
2014年08月19日 01点08分
1
var
i1,j,n,ji:integer;
a:array[1..100,1..100]of integer;
dit:array[1..100]of integer;
procedure dijk(i:integer);
var j,k,min:integer;
begin
k:=32767;
if ji > n then exit;
for j:=1 to n do
if a[i,j]<>0 then
begin
if a[i,j]+dit[i]<dit[j] then dit[j]:=a[i,j]+dit[i];
if k>a[i,j] then begin k:=a[i,j];min:=j;end;
end;
ji:=ji+1;
a[i,min]:=32767;
a[min,i]:=32767;
dijk(min);
end;
begin
ji:=0;
read(n);
for i1:=1 to n do
dit[i1]:=32766;
for i1:=1 to n do
for j:=1 to n do
read(a[i1,j]);
readln(i1,j);
dit[i1]:=0;
dijk(i1);
writeln(dit[j]);
end.