- 分享
- 2009-07-25 11:45:30 @
编译通过...
├ 测试数据 01:运行时错误...|错误号: -1073741571
├ 测试数据 02:运行时错误...|错误号: -1073741571
├ 测试数据 03:运行时错误...|错误号: -1073741571
├ 测试数据 04:答案错误... ├ 标准行输出
├ 错误行输出
├ 测试数据 05:运行时错误...|错误号: -1073741571
├ 测试数据 06:答案错误... ├ 标准行输出
├ 错误行输出
├ 测试数据 07:答案错误... ├ 标准行输出
├ 错误行输出
├ 测试数据 08:运行时错误...|错误号: -1073741571
├ 测试数据 09:运行时错误...|错误号: -1073741571
├ 测试数据 10:运行时错误...|错误号: -1073741571
type
air=record
x,y,zhi:longint;
end;
var
r,a1,a2,c,n,n1,x1,y1,min,max:longint;
x:array[1..1000,1..1000] of longint;
y:array[1..30000] of air;
lh:array[1..30000] of longint;
procedure sort(l,r:longint);
var
i,j,zh:longint;
ex:air;
begin
i:=l; j:=r; zh:=y[(l+r) div 2].zhi;
repeat
while y[i].zhizh do j:=j-1;
if ij;
if laa)and(lh[x[sx-1,sy]]>get) then get:=lh[x[sx-1,sy]];
if sy>1 then if (x[sx,sy-1]>aa)and(lh[x[sx,sy-1]]>get) then get:=lh[x[sx,sy-1]];
if sxaa)and(lh[x[sx+1,sy]]>get) then get:=lh[x[sx+1,sy]];
if syaa)and(lh[x[sx,sy+1]]>get) then get:=lh[x[sx,sy+1]];
if get=-1 then get:=0;
end;
begin
readln(r,c);
for a1:=1 to r do
begin
for a2:=1 to c do
begin
read(x[a1,a2]);
n:=n+1;
y[n].zhi:=x[a1,a2];
y[n].x:=a1;
y[n].y:=a2;
end;
readln;
end;
sort(1,n);
for a1:=n downto 1 do
begin
x1:=y[a1].x; y1:=y[a1].y;
lh[y[a1].zhi]:=get(x1,y1)+1;
if lh[y[a1].zhi]>max then max:=lh[y[a1].zhi];
end;
writeln(max);
end.
qsort+dp