70分 求调
查看原帖
70分 求调
1251715
Moss345512楼主2024/10/12 20:31

DP

7 AC 2 WA 1 RE
#include<cstdio>
int n,m,s[105][105],dp[105][105],ans;
int addx[4]={1,-1,0,0},addy[4]={0,0,-1,1};
int main(){
	scanf("%d %d",&n,&m);
	for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)scanf("%d",&s[i][j]);
	for(int t=1;t<=n*m;t++){
		int ti,tj,maxn=0;
		for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)if(!dp[i][j] && s[i][j]>maxn)maxn=s[i][j],ti=i,tj=j;
		maxn=0;
		for(int i=0;i<4;i++)if(dp[ti+addx[i]][tj+addy[i]]>maxn && s[ti+addx[i]][tj+addy[i]]>s[ti][tj])maxn=dp[ti+addx[i]][tj+addy[i]];
		dp[ti][tj]=maxn+1;
		if(dp[ti][tj]>ans)ans=dp[ti][tj];
	}
	printf("%d",ans);
	return 0;
}
2024/10/12 20:31
加载中...