stswkl @ 2022-08-01 08:24:36
#include<bits/stdc++.h>
using namespace std;
struct node
{
long long A,X,Y;
};
node a[10005];
long long n,m,b[105][105],dp[105][105],da,x,y;
bool cmp(node x,node y)
{
return x.A>y.A;
}
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
{
cin>>b[i][j];
a[(i-1)*n+j].A=b[i][j];
a[(i-1)*n+j].X=i;
a[(i-1)*n+j].Y=j;
}
sort(a+1,a+n*m+1,cmp);
for(int i=1;i<=n*m;i++)
{
x=a[i].X;y=a[i].Y;
da=dp[x][y];
if(b[x-1][y]>b[x][y])da=max(da,dp[x-1][y]);
if(b[x+1][y]>b[x][y])da=max(da,dp[x+1][y]);
if(b[x][y-1]>b[x][y])da=max(da,dp[x][y-1]);
if(b[x][y+1]>b[x][y])da=max(da,dp[x][y+1]);
dp[x][y]=da+1;
}
da=0;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
da=max(da,dp[i][j]);
cout<<da;
return 0;
}
WA 1# 2#
by furbzy @ 2022-08-05 19:05:10
hank:
输入:
4 2
0 1
3 2
3 3
4 4
输出:5