暴搜飘过。。。{记忆化}
VAR R,L,I,J,MAX:lONGINT; DX:ARRAY[1..4] OF INTEGER=(1,-1,0,0); DY:ARRAY[1..4] OF INTEGER=(0,0,-1,1); H:ARRAY[1..100,1..100] OF LONGINT; F:ARRAY[1..100,1..100] OF LONGINT; FUNCTION DFS(I,J:LONGINT):LONGINT; VAR K:INTEGER; X,Y:LONGINT; BEGIN IF F[I,J]>1 THEN EXIT(F[I,J]); DFS:=1; FOR K:=1 TO 4 DO BEGIN X:=I+DX[K];Y:=J+DY[K]; IF (X>=1) AND (X<=R) AND (Y>=1) AND(Y<=L) AND (H[I,J]>H[X,Y]) THEN IF DFS<DFS(X,Y)+1 THEN DFS:=DFS(X,Y)+1; F[I,J]:=DFS; END; END; BEGIN READ(R,L); FOR I:=1 TO R DO FOR J:=1 TO L DO BEGIN READ(H[I,J]); F[I,J]:=1; END; FOR I:=1 TO R DO FOR J:=1 TO L DO IF MAX<DFS(I,J) THEN MAX:=DFS(I,J); WRITELN(MAX); END.