希望有哥哥会帮我
查看原帖
希望有哥哥会帮我
464570
lamp_forever楼主2022/1/25 15:20
#include<bits/stdc++.h>
using namespace std;
int ans,maxx=-1;
int a[103][103];
int b[103][103];
int dx[5]={0,1,0,-1,0};
int dy[5]={0,0,1,0,-1};
int m,n;
void dfs(int x, int y){
	if(b[x][y]<ans){
		ans++;
		b[x][y]=ans;
		for(int i=1;i<=4;i++){
			if(a[x][y]>a[x+dx[i]][y+dy[i]]&&x+dx[i]>0&&x+dx[i]<=n&&y+dy[i]>0&&y+dy[i]<=m)
			{
				dfs(x+dx[i],y+dy[i]);
			}
		}
		ans--;
	}
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			cin>>a[i][j];
		}
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			ans=1;
			dfs(i,j);
		}
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			maxx=max(maxx,b[i][j]);
		}
	}
	cout<<maxx;
	return 0;
}







我不理解样例过了但是只有10分





2022/1/25 15:20
加载中...