70分 求调

P1434 [SHOI2002] 滑雪

Moss345512 @ 2024-10-12 20:31:28

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;
}

|