Sherry 2008-06-26 08:34:00
点我顶贴
收藏
删除
var g:array[1..50,1..50] of longint;
v,e,i,j,x,min:longint;
procedure jiantu;
begin
read(v,e);
fillchar(g,sizeof(g),126);
for x:=1 to e do
begin
read(i,j,g[i,j]);
g[j,i]:=g[i,j];
end;
end;
procedure prim;
var bjh,djh:array[1..20] of longint;
i,k,j,ans:longint;
begin
ans:=0;
for i:=1 to v do
begin
bjh[i]:=g[1,i];
djh[i]:=1;
end;
for i:=1 to v-1 do
begin
min:=32767;
for j:=1 to v do
if (bjh[j]<min)and(bjh[j]<>0)
then begin
min:=bjh[j];
k:=j;
end;
ans:=ans+min;
bjh[k]:=0;
g[djh[k],k]:=0;
g[k,djh[k]]:=0;
for j:=1 to v do
if (g[k,j]<bjh[j]) then begin
bjh[j]:=g[k,j];
djh[j]:=k;
end;
end;
write(ans);
end;
begin
jiantu;
prim;
end.