本蒟蒻想了好几天都没找出问题,求助各位dalao神犇
查看原帖
本蒟蒻想了好几天都没找出问题,求助各位dalao神犇
348028
123456yzx楼主2020/11/6 13:31
#include<bits/stdc++.h>
using namespace std;

int r,c,h[10000][200],maxn,l[10000][200],ax[4]={0,0,1,-1},ay[4]={1,-1,0,0},xx,yy; 

int csb(int x,int y){
	if(l[x][y]){
		return l[x][y];
	}else{
		l[x][y]=1;
		for(int k=0;k<4;k++){
			xx=x+ax[k];
			yy=y+ay[k];
			if(xx>=0&&yy>=0&&xx<r&&yy<c&&h[x][y]>h[xx][yy]){
				l[xx][yy]=csb(xx,yy);
				l[x][y]=max(l[x][y],l[xx][yy]+1);
			}
		}
		return l[x][y];
	}
}

int main(){
	memset(l,0,sizeof(l));
	scanf("%d%d",&r,&c);
	for(int i=0;i<r;i++){
		for(int j=0;j<c;j++){
			scanf("%d",&h[i][j]);
		}
	}
	for(int i=0;i<r;i++){
		for(int j=0;j<c;j++){
			maxn=max(maxn,csb(i,j));
		}
	}
	printf("%d",maxn);
	return 0;
}
2020/11/6 13:31
加载中...