讨论 / 求救AC大牛!!!P193帮我看看
dongfanzhu 2010-04-16 03:59:00
点我顶贴 收藏 删除
我用的是kruskal算法加并查集...

谁帮我改改啊!万分感谢!!!

状态: Unaccepted

测评机: Xeost[5]

得分: 0分

提交日期: 2010-4-11 0:09:00

有效耗时: 该状态没有记录

测试结果1: 运行错误|栈溢出

测试结果2: 运行错误|普通保护错误

测试结果3: 运行错误|普通保护错误

测试结果4: 运行错误|普通保护错误

测试结果5: 运行错误|普通保护错误

测试结果6: 运行错误|普通保护错误

测试结果7: 运行错误|普通保护错误

测试结果8: 运行错误|普通保护错误

测试结果9: 运行错误|栈溢出

测试结果10: 运行错误|栈溢出

程序如下:

program P193;

type

date=record

x,y,v:longint;

end;

var

n,m,i,ans:longint;

a:array[1..1000000] of date;

b:array[0..1000] of longint;

procedure qsort(l,r:longint);

var

x,i,j:longint;

t:date;

begin

x:=a[random(l-r+1)+l].v;

i:=l;j:=r;

repeat

while a[i].v<x do inc(i);

while a[j].v>x do dec(j);

if i<=j then

begin

t:=a[i];a[i]:=a[j];a[j]:=t;

inc(i);

dec(j);

end;

until i>j;

if l<j then qsort(l,j);

if i<r then qsort(i,r);

end;

function pd(h:longint):longint;

begin

if b[h]=0 then pd:=h

else pd:=pd(b[h]);

end;

procedure kruskal;

var

i,j:longint;

begin

i:=1;j:=1;

while i<=n-1 do

begin

if pd(a[j].x)<>pd(a[j].y) then

begin

inc(i);

ans:=a[j].v+ans;

b[pd(a[j].x)]:=pd(a[j].y);

end;

inc(j);

end;

end;

begin

readln(n,m);

for i:=1 to m do readln(a[i].x,a[i].y,a[i].v);

qsort(1,m);

kruskal;

writeln(ans);

end.

#1 wish@2010-04-11 00:39:00
回复 删除
x:=a[random(l-r+1)+l].v;

x:=a[random([color=red]r-l[/color]+1)+l].v;

很有趣的错误

#2 dongfanzhu@2010-04-16 03:59:00
回复 删除
饿...

这个错误...

这么说也说不过来 (自己BS自己)

不过还是谢谢wish牛了

请以后多多指教....

想wish牛致敬!!!

查看更多回复
提交回复