题目链接
题目链接
dp问题
用的记忆化搜索
```java
import java.awt.*;
import java.util.*;
public class Main {
static int[][] dp;
static int[][] num;
static int r;
static int c;
static int[] dx={-1,1,0,0};
static int[] dy={0,0,-1,1};
static int max=0;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
r=sc.nextInt();
c=sc.nextInt();
dp=new int[r][c];
num=new int[r][c];
for(int i=0;i<r;i++)
for(int j=0;j<c;j++)
num[i][j]=sc.nextInt();
for(int i=0;i<r;i++)
for(int j=0;j<c;j++)
dp[i][j]=dfs(i,j);
System.out.println(max);
}
public static int dfs(int i,int j){
if(dp[i][j]>0)
return dp[i][j];
dp[i][j]=1;
for(int k=0;k<4;k++){
int i0=i+dx[k];
int j0=j+dy[k];
if(j0>=0&&i0>=0&&j0<c&&i0<r&&num[i][j]>num[i0][j0])
dp[i][j]=Math.max(dp[i][j],dfs(i0,j0)+1);
}
if(dp[i][j]>max)
max=dp[i][j];
return dp[i][j];
}
}