为啥#1wa了 其他都好好的

P1434 [SHOI2002] 滑雪

ccioc @ 2023-12-08 10:24:55

#include<stdio.h>
#include<algorithm>
using namespace std;
int dp[10020];
int a[10020];
bool cmp(int x,int y){
    if(a[x]<a[y])
        return true;
    return false;
}
int main(){
    int r,c;
    int i;
    int s[10005];
    scanf("%d %d",&r,&c);
    for(i=1;i<=r*c;i++){
        s[i]=i;
        scanf("%d",&a[i]);
    }
    int len=r*c;
    sort(s+1,s+len+1,cmp);
    for(int i=1;i<=len;i++){
        dp[s[i]]=1;
        if((s[i]-c)>0&&a[s[i]-c]<a[s[i]])
            dp[s[i]]=max(dp[s[i]],dp[s[i]-c]+1);
        if((s[i]-1)>0&&a[s[i]-1]<a[s[i]])
            dp[s[i]]=max(dp[s[i]],dp[s[i]-1]+1);
        if((s[i])%c&&a[s[i]+1]<a[s[i]])
            dp[s[i]]=max(dp[s[i]],dp[s[i]+1]+1);
        if((s[i]+c)<=len&&a[s[i]]>a[s[i]+c])
            dp[s[i]]=max(dp[s[i]],dp[s[i]+c]+1);
    }
    int max=dp[1];
    for(i=1;i<=len;i++)
        if(max<dp[i])
            max=dp[i];
    printf("%d",max);
} 

|