P1434
  • 板块题目总版
  • 楼主lamp_forever
  • 当前回复0
  • 已保存回复0
  • 发布时间2022/1/25 15:23
  • 上次更新2023/10/28 11:00:48
查看原帖
P1434
464570
lamp_forever楼主2022/1/25 15:23
#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;
}




为什么样例过了但是没有用








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