DP求助
查看原帖
DP求助
285373
BlachSnake楼主2021/4/20 20:13
#include<algorithm>
#include<stdio.h>
#include<ctype.h>
#define max(x,y) (x<y?x:y)
namespace io{
	int Read(){
		int x=0;
		bool d=0;
		char c=getchar();
		for(;!isdigit(c);c=getchar())if(c=='-')d=1;
		for(;isdigit(c);c=getchar())x=(x<<3)+(x<<1)+c-48;
		if(d)x=-x;
		return x;
	}
	void Print(int x){
		if(x<0)x=-x,putchar('-');
		int a[12],l=0;
		for(;x;x/=10)a[l++]=x%10;
		if(!l)putchar('0');
		for(l--;~l;l--)putchar(a[l]+48);
		putchar(' ');
	}
}
using namespace io;
using std::sort;
const int N=128,mx[4]={1,0,-1,0},my[4]={0,1,0,-1};
struct node{int x,y,v;}t[N*N];
int a[N][N],f[N][N];
inline bool cmp(node a,node b){return a.v<b.v;}
int main(){
	int r=Read(),c=Read(),m=r*c,x,y,s=0;
	for(int i=1;i<=r;i++)
		for(int j=1;j<=c;j++)
			a[i][j]=Read(),t[++s]=(node){i,j,a[i][j]};
	sort(t+1,t+m+1,cmp);
	s=0;
	for(int i=1;i<=m;i++){
		x=t[i].x,y=t[i].y;
		for(int j=0;j<4;j++)
			if(a[x+mx[j]][y+my[j]]<a[x][y])
				f[x][y]=max(f[x][y],f[x+mx[i]][y+my[i]]);
		f[x][y]++;
		s=max(s,f[x][y]);
	}
	Print(s);
	return 0;
}

RT,不知道sort的时候出什么问题了,总是RE……

所以那个WA是什么意思

求调QwQ

2021/4/20 20:13
加载中...