30tps help!
查看原帖
30tps help!
1012241
Dcchen楼主2024/7/24 20:39

记录详情

#include<iostream>
#include<algorithm>
#include<map>
using namespace std;
const int nx[]={0,0,0,1,-1},ny[]={0,1,-1,0,0};
struct ST{
	int x,y;
}; 
map<int,ST> mp;
int r,c,a[105][105],dp[105][105],ans;
int main(){
	cin>>r>>c;
	for(int i=1;i<=r;i++){
		for(int j=1;j<=c;j++){
			cin>>a[i][j];
			mp[a[i][j]].x=i;
			mp[a[i][j]].y=j;
		}
	}
	for(int i=1;i<=10002;i++){
		if(mp[i].x!=0){
			for(int j=1;j<=4;j++){
				int dx=mp[i].x+nx[j];
				int dy=mp[i].y+ny[j];
				if(a[dx][dy]<a[mp[i].x][mp[i].y]) dp[mp[i].x][mp[i].y]=max(dp[dx][dy],dp[mp[i].x][mp[i].y]);
			}
			 dp[mp[i].x][mp[i].y]++;
		}
	}
	for(int i=1;i<=r;i++){
		for(int j=1;j<=c;j++){
			ans=max(ans,dp[i][j]);
		}
	}
	cout<<ans;
}
2024/7/24 20:39
加载中...