#1错误求助!

P1434 [SHOI2002] 滑雪

ZY_85 @ 2022-09-28 17:31:44

#include<iostream>
//#include<bits/stdc++.h>
using namespace std;
//#define data dp//data在洛谷编译会失败(可能是关键字)
int A[100][100],data[100][100],n,m,temp;
void DataFS(int x,int y){
    temp++;
    int NX,NY,t=-1,Nextx=-1,Nexty=-1;
    NX=x-1;NY=y;
    if(NX>=0&&NX<n&&NY>=0&&NY<m&&A[NX][NY]<A[x][y]&&A[NX][NY]>t){
        t=A[NX][NY];
        Nextx=NX;
        Nexty=NY;
    }
    NX=x;NY=y+1;
    if(NX>=0&&NX<n&&NY>=0&&NY<m&&A[NX][NY]<A[x][y]&&A[NX][NY]>t){
        t=A[NX][NY];
        Nextx=NX;
        Nexty=NY;
    }
    NX=x+1;NY=y;
    if(NX>=0&&NX<n&&NY>=0&&NY<m&&A[NX][NY]<A[x][y]&&A[NX][NY]>t){
        t=A[NX][NY];
        Nextx=NX;
        Nexty=NY;
    }
    NX=x;NY=y-1;
    if(NX>=0&&NX<n&&NY>=0&&NY<m&&A[NX][NY]<A[x][y]&&A[NX][NY]>t){
        t=A[NX][NY];
        Nextx=NX;
        Nexty=NY;
    }
    if(Nextx!=-1&&Nexty!=-1&&t!=-1)DataFS(Nextx,Nexty);
    return;
}
int main(){
//  freopen("P1434Data.in","r",stdin);
    cin>>n>>m;
    for(int i=0;i<n;i++)for(int j=0;j<m;j++)cin>>A[i][j];
    for(int i=0;i<n;i++){
        for(int j=0;j<m;j++){
            temp=0;
            DataFS(i,j);
            data[i][j]=temp;
        }
    }
    int answer=0;
    for(int i=0;i<n;i++)for(int j=0;j<m;j++)if(data[i][j]>answer)answer=data[i][j];
    cout<<answer;
//  fclose(stdin);
    return 0;
}

|