讨论 / 合肥的大牛们 来帮我看看滑雪
liruyuan 2012-08-25 21:48:00
点我顶贴 收藏 删除
看在我是hfyz新生的份子上 帮我看看吧 谢谢

第一个 记忆化搜索版的 90分

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

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

var

i,j,r,c:integer;

t,ans:longint;

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

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

function search(x,y:shortint):word;

var

i,nx,ny:shortint; t,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);

end.

第二个 先排序的 60分

测试结果1:测试结果错误.错误结果为:6

正确结果应为:7

测试结果7:测试结果错误.错误结果为:2

正确结果应为:3

测试结果8:测试结果错误.错误结果为:4

正确结果应为:5

测试结果9: 测试结果错误.错误结果为:9

正确结果应为:10

program zz;

const

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

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

type

point=record

gao,cross,down:integer;

end;

var

i,j,m,n,max,t,x,y:longint;

f,a:array[1..100,1..100]of integer;

b:array[1..10000]of point;

procedure sort(l,r:integer);

var

i,j,x:integer;

y:point;

begin

i:=l; j:=r;

x:=b[(l+r)div 2].gao;

repeat

while b[i].gao<x do inc(i);

while b[j].gao>x do dec(j);

if i<=j then

begin

y:=b[i];

b[i]:=b[j];

b[j]:=y;

inc(i);

dec(j);

end;

until i>j;

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

if j>l then sort(l,j);

end;

begin

read(m,n);

for i:=1to m do

for j:=1to n do

begin

inc(t);

read(a[i,j]);

b[t].gao:=a[i,j];

b[t].cross:=i;

b[t].down:=j;

end;

sort(1,t);

f[b[t].cross,b[t].down]:=1;

for i:=m*n downto 1 do

begin

for j:=1to 4 do

if a[b[i].cross,b[i].down]>a[b[i].cross+dx[j],b[i].down+dy[j]] then

begin

x:=b[i].cross+dx[j];

y:=b[i].down+dy[j];

if (f[b[i].cross,b[i].down]+1>f[x,y])and(x>=1)and(x<=m)

and(y>=1)and(y<=n)

then f[x,y]:=f[b[i].cross,b[i].down]+1;

end;

end;

for i:=1to m do

for j:=1to n do

if f[i,j]>max then max:=f[i,j];

writeln(max);

readln(i);

end.

#1 liruyuan@2010-08-25 23:11:00
回复 删除
自己顶

OI人 帮我看看吧

#2 巫妖王@2010-08-26 23:03:00
回复 删除
我是合肥的,但我是弱菜^-^
#3 巫妖王@2010-08-26 23:05:00
回复 删除
LZ牛逼,直接发蓝书标程
#4 巫妖王@2010-08-26 23:06:00
回复 删除
LZ发标程减RP,所以无法AC
#5 刘载清@2012-08-25 21:48:00
回复 删除
啊……晕……啊

[color=blue]啊……晕……啊[/color]

查看更多回复
提交回复