提交时间:2024-03-30 17:04:33

运行 ID: 140677

#include<bits/stdc++.h> using namespace std; int mmax(int a,int b,int c,int d,int e){ return max(a,max(b,max(c,max(d,e)))); } int main(){ int n,m,a[105][105],dp[105][105]; memset(a,0,sizeof(a)); memset(dp,0,sizeof(dp)); cin>>n>>m; for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ cin>>a[i][j]; } } for(int ii=1;ii<=n;ii++){ for(int jj=1;jj<=n;jj++){ for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ if(a[i-1][j]>a[i][j]) dp[i][j]=max(dp[i][j],dp[i-1][j]+1); if(a[i][j-1]>a[i][j]) dp[i][j]=max(dp[i][j],dp[i][j-1]+1); if(a[i+1][j]>a[i][j]) dp[i][j]=max(dp[i][j],dp[i+1][j]+1); if(a[i][j+1]>a[i][j]) dp[i][j]=max(dp[i][j],dp[i][j+1]+1); } } } } int maxn=0; for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ maxn=max(maxn,dp[i][j]); } } cout<<maxn+1; return 0; }