能帮忙看下吗?90分!最后堆栈溢出

program p1051;

var

pic:array[-1..150,-1..150] of char;

i,j,k,l,r,s:integer;

procedure paint(y,x:integer);

var

xx,yy:array[1..12] of integer;

ii:integer;

begin

yy[1]:=-2;xx[1]:=0;

yy[2]:=-1;xx[2]:=-1;

yy[3]:=-1;xx[3]:=0;

yy[4]:=-1;xx[4]:=1;

yy[5]:=0;xx[5]:=-2;

yy[6]:=0;xx[6]:=-1;

yy[7]:=0;xx[7]:=1;

yy[8]:=0;xx[8]:=2;

yy[9]:=1;xx[9]:=-1;

yy[10]:=1;xx[10]:=0;

yy[11]:=1;xx[11]:=1;

yy[12]:=2;xx[12]:=0;

pic[y,x]:='-';

for ii:=1 to 12 do

begin

if ((pic[y+yy[ii],x+xx[ii]]='#') and ((y+yy[ii])>0) and ((x+xx[ii])>0)

and ((y+yy[ii])

1 条评论

  • @ 2009-06-19 15:06:38

    最好用宽搜

    如果BFS 那么在递归子程序里不要占太大内存 {每一次12个方向} 那如果数据大的话 递归方向就会很多 内存会占很大 就会堆栈溢出的 在子程序中用12个IF语句代替循环

  • 1

信息

ID
1051
难度
4
分类
搜索 | 搜索与剪枝 点击显示
标签
递交数
6211
已通过
2439
通过率
39%
被复制
14
上传者