80求助,#1和#10没过
查看原帖
80求助,#1和#10没过
521283
wangif424楼主2022/7/27 17:36
#include<bits/stdc++.h>
using namespace std;
int r,c;
int book[101][101],ditu[101][101],dp[101][101],ans;
int main(){
	cin >> r >> c;
	for(int i=1;i<=r;i++){
		for(int j=1;j<=c;j++){
			cin >> ditu[i][j];
			dp[i][j]=1;
		} 
	}
	for(int k=1;k<=r*c;k++){
		int mini=INT_MAX;
		int x=0;
		int y=0;
		for(int i=1;i<=r;i++){
			for(int j=1;j<=c;j++){
				if(book[i][j]==0&&mini>ditu[i][j]){
					x=i;
					y=j;
					mini=ditu[i][j];
				}
			}
		}	
		//cout << x << " " << y << endl;
		book[x][y]=1;
		for(int i=1;i>=-1;i--){
			for(int j=1;j>=-1;j--){
				if(ditu[i+x][j+y]>ditu[x][y] && book[i+x][j+y]==0){
					dp[i+x][j+y]=max(dp[i+x][j+y],dp[x][y]+1);
				}
			}
		}
	}
	for(int i=1;i<=r;i++){
		for(int j=1;j<=c;j++){
			ans=max(ans,dp[i][j]);
			//cout << dp[i][j] << " ";
		}
	//	cout << endl;
	}	
	cout << ans;
	return 0;
}

2022/7/27 17:36
加载中...