讨论 / 滑雪:最后一个点没过(栈溢出) 大牛们给看看 谢谢
liruyuan 2010-08-22 00:15:00
点我顶贴 收藏 删除
测试结果10: 运行错误|栈溢出

我的程序

program Project1;

const

dx:array[1..4]of integer=(0,0,1,-1);

dy:array[1..4]of integer=(1,-1,0,0);

var

r,c,i,j,m,n,s,t,ans:longint;

a:array[1..100,1..100]of longint;

f:array[1..100,1..100]of longint;

function search(x,y:longint):longint;

var

i,j,t,nx,ny,temp:longint;

begin

if f[x,y]>0 then begin search:=f[x,y]; exit; end;

t:=1;

for i:=1to 4 do

begin

nx:=x+dx[i];

ny:=y+dy[i];

if (nx>=1)and(nx<=r)and(ny>=1)and(ny<=c)and(a[x,y]<a[nx,ny])

then begin

temp:=1+search(nx,ny);

if temp>t then t:=temp;

end;

end;

f[x,y]:=t;

search:=t;

end;

begin

readln(r,c);

for i:=1to r do

for j:=1to c do

read(a[i,j]);

ans:=0;

for i:=1to r do

for j:=1to c do

begin

t:=search(i,j);

f[i,j]:=t;

if t>ans then ans:=t;

end;

writeln(ans);

readln(s);

end.

各位给看看 谢谢了

#1 sideman@2010-08-22 00:15:00
回复 删除
t:=1;

t为什么等于1?

改成t:=f[x,y]吧

你这样 相当于无记忆化搜索

查看更多回复
提交回复