讨论 / 求助
noip2012 2010-10-23 05:42:00
点我顶贴 收藏 删除
var

link:array[1..300,1..300] of longint;

d:array[1..300] of longint;

n,m,ans,i,t1,t2,tmp:longint;

procedure search(p,now:longint);

var

bak_link:array[1..300,1..300] of longint;

bak_d:array[1..300] of longint;

t,i,j,k:longint;

flag:boolean;

begin

if now>=ans then exit;

if (d[p]=0)or(d[p]=1) then

begin

if now<ans then ans:=now;

exit;

end;

for i:=1 to n do bak_d[i]:=d[i];

for i:=1 to n do

for j:=1 to d[i] do

bak_link[i,j]:=link[i,j];

flag:=true;

for i:=1 to d[p] do

begin

if d[link[p,i]]<>0 then flag:=false else continue;

t:=link[p,i mod d[p]+1];

for j:=1 to d[p] do

if (j<>i)and(link[p,j]<>t) then

for k:=1 to d[link[p,j]] do

begin

inc(d[t]);

link[t,d[t]]:=link[link[p,j],k];

end;

search(t,now+d[p]-1);

for j:=1 to n do d[j]:=bak_d[j];

for j:=1 to n do

for k:=1 to d[i] do

link[j,k]:=bak_link[j,k];

end;

if flag then

if now+d[p]-1<ans then ans:=now+d[p]-1;

end;

begin

readln(n,m);

fillchar(d,sizeof(d),0);

for i:=1 to m do

begin

readln(t1,t2);

if t1>t2 then

begin

tmp:=t1;

t1:=t2;

t2:=tmp;

end;

inc(d[t1]);

link[t1,d[t1]]:=t2;

end;

ans:=maxlongint;

search(1,1);

writeln(ans);

end.

这个程序在自己电脑上用批处理测AC,用清橙评测器测,时限1s空限128M也AC,但交到这里就不一样了

状态: Unaccepted

测评机: Xeond[6]

得分: 0分

提交日期: 2010-10-23 20:24:00

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

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

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

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

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

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

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

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

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

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

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

哪位神牛能帮忙看看?谢谢了!

#1 noip2012@2010-10-23 05:42:00
回复 删除
额,不好意思,本菜已经AC了

不过真的挺奇怪的,为什么在过程里开一个300*300的数组就全部栈溢出,而不开这个数组就AC?

查看更多回复
提交回复