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: 运行错误|栈溢出
哪位神牛能帮忙看看?谢谢了!
不过真的挺奇怪的,为什么在过程里开一个300*300的数组就全部栈溢出,而不开这个数组就AC?