2个RE,求助
查看原帖
2个RE,求助
830848
LJK5556楼主2024/5/16 16:25
#include <bits/stdc++.h>
using namespace std;
struct lu{
	int x,y;
	int g;
}qq[10005];
int r,c;
int f[10005];
bool cmp(lu a,lu b){
	return a.g>=b.g;
}
int check(lu a,lu b){
	int xx[4]={0,0,-1,1};
	int yy[4]={-1,1,0,0};
	int i;
	for(i=0;i<4;i++){
		if(a.x+xx[i]==b.x&&a.y+yy[i]==b.y)
			return 1;
	}
	return 0;
}
int main()
{
	int i,j,a,b=1;
	scanf("%d%d",&r,&c);
	for(i=0;i<r*c;i++){
		scanf("%d",&qq[i].g);
		qq[i].x=i/c;
		qq[i].y=i%c;
		f[i]=1;
	}
	sort(qq,qq+r*c,cmp);
	for(i=1;i<r*c;i++){
		a=0;
		for(j=0;j<i;j++){
			if(check(qq[i],qq[j])&&qq[i].g<qq[j].g){
				f[i]=max(f[i],f[j]+1);
			}
		}
		b=max(b,f[i]);
	}
	printf("%d\n",b);
	return 0;
}
2024/5/16 16:25
加载中...