讨论 / 什么意思?
苍蝇 2009-05-13 01:11:00
点我顶贴 收藏 删除
begin

min:=2147483647;

for j:=1to m do

if(lowcost[j]<min)and(lowcost[j]<>0)

then begin

min:=lowcost[j];

k:=j;

end;

lowcost[k]:=0;

for j:=1to m do

if f[k,j]<lowcost[j]

then begin

lowcost[j]:=f[k,j];

closest[j]:=k;

end;

end;

for i:=2to m do

r:=r-f[closest[i],i];

以下是我的代码,上面的看不懂~~~~~~

who can help me?

var

f:array[1..200,1..200]of integer;

x,y,i,n,j,k,v:integer;

num,numm:longint;

procedure prim(v0:integer);

var flag:array[1..200] of boolean;

min,pre,nex:integer;

begin

fillchar(flag,sizeof(flag),false);

flag[v0]:=true;

num:=0;

for i:= 1 to v-1 do

begin

min:=maxint;

for k:=1 to v do

if flag[k] then

for j:=1 to v do

if (not flag[j])and(f[k,j]<>0)and(f[k,j]<min) then

begin

min:=f[k,j]; pre:=k; nex:=j;

end;

if min<>maxint then

begin

flag[j]:=true;

inc(num,f[pre,nex]);

end;

end;

end;

begin

readln(v,n);

fillchar(f,sizeof(f),0);

for i:=1 to n do

begin

read(x,y);

read(f[x,y]);

f[y,x]:=f[x,y];

end;

numm:=0;

for i:=1 to v do

for j:=1 to v do inc(numm,f[i,j]);

numm:=numm div 2;

prim(1);

writeln(num*2);

end.

查看更多回复
提交回复