WA on #1#2
查看原帖
WA on #1#2
1151738
xyztapeplayer楼主2024/4/20 14:54
#include <bits/stdc++.h>
using namespace std;
struct node{
	int x,y,h;
};
int n,m,dp[105][105],b[105][105];
node a[10005];
bool cmp(node x,node y){
	return x.h>y.h;
}
void print(){
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++) cout<<dp[i][j]<<" ";
		cout<<endl;
	}
	cout<<endl;
}
int main() {
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			int p;
			cin>>p;
			a[(i-1)*n+j]={i,j,p};
			b[i][j]=p;
		}
	}
	sort(a+1,a+1+n*m,cmp);
	for(int i=1;i<=n*m;i++){
		node k=a[i];
		if(k.h<b[k.x-1][k.y]) dp[k.x][k.y]=max(dp[k.x-1][k.y],dp[k.x][k.y]);
		if(k.h<b[k.x][k.y-1]) dp[k.x][k.y]=max(dp[k.x][k.y-1],dp[k.x][k.y]);
		if(k.h<b[k.x+1][k.y]) dp[k.x][k.y]=max(dp[k.x+1][k.y],dp[k.x][k.y]);
		if(k.h<b[k.x][k.y+1]) dp[k.x][k.y]=max(dp[k.x][k.y+1],dp[k.x][k.y]);
		dp[k.x][k.y]++;
		//cout<<k.x<<" "<<k.y<<" "<<k.h<<endl;
		//print();
	}
	int mx=-1;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			mx=max(mx,dp[i][j]);
		}
	}
	cout<<mx;
	return 0;
}
2024/4/20 14:54
加载中...