40分求助

P1434 [SHOI2002] 滑雪

EnochWenzhou @ 2019-03-14 23:40:16

#include<bits/stdc++.h>
using namespace std;

int n,m,f[10010],ans;

struct ski{
    int val,x,y;
}a[10010];

bool cmp(ski p,ski q){
    return p.val<q.val;
}

int main(){
    cin>>n>>m;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
            scanf("%d",&a[(i-1)*n+j].val),
            a[(i-1)*n+j].x=i,
            a[(i-1)*n+j].y=j;
    sort(a+1,a+1+n*m,cmp);
    for(int i=1;i<=n*m;i++){
        for(int j=1;j<i;j++){
            if((a[j].x==a[i].x && (a[j].y==a[i].y+1 || a[j].y==a[i].y-1)) ||
               (a[j].y==a[i].y && (a[j].x==a[i].x+1 || a[j].x==a[i].x-1)))
               f[i]=max(f[i],f[j]+1);
        }
        ans=max(ans,f[i]);
    }
    cout<<ans+1;
}

by 无形的狗子 @ 2019-07-16 11:36:04

你好呀,我也是40分。 想要测试点......


|