讨论 / 我的哪错了 只得了10分
from 2008-07-20 22:34:00
点我顶贴 收藏 删除
program dddd;

var i,j,n,min,w,q,m,p,l,z,v :longint;

a:array[1..1000,1..1000]of longint;

s,h:array[1..1000]of longint;

begin

read(n,v);

fillchar(h,sizeof(h),0);

fillchar(s,sizeof(s),0);

fillchar(a,sizeof(a),0);

for i:= 1 to v do

begin

read(p,l,z);

a[l,p]:=z;

a[p,l]:=z;

end;

{ for i:= 1to n do

begin

for j:= 1to n do

begin

write(a[i,j]);

end;

writeln;

end; }

h[1]:=1;

s[1]:=1;

q:=1;

while q<=n-1 do

begin

min:=maxlongint;

for i:= 1 to q do

for j:= 1 to n do

if (i<>j)and(h[j]=0)and(a[s[i],j]>0)then

begin

if a[s[i],j]<min then

begin

min:=a[s[i],j];

m:=j;

end;

end;

h[m]:=1;

w:=min+w;

inc(q);

s[q]:=m;

end;

{for i:= 1to n do

begin

writeln(s[i]);

end; }

write(w);

end.

#1 lychees@2008-07-20 22:34:00
回复 删除
有可能在两个城市之间多于一条边的情况...
查看更多回复
提交回复