14 条题解

  • 0
    @ 2026-5-20 13:00:50
    #include <bits/stdc++.h>
    using namespace std;
    #define co const
    #define d int
    co d N=200;
    co d dx[5]={0,-1,1,0,0};
    co d dy[5]={0,0,0,-1,1};
    d n,m,ans,maxn,a[N][N],f[N][N];
    void dfs(int x,int y,int s){
        ans=max(ans,s);
        for(int i=1;i<=4;i++){
            int tx=x+dx[i];
            int ty=y+dy[i];
            if(tx>=1&&ty>=1&&tx<=n&&ty<=m&&a[x][y]>a[tx][ty]&&s+1>f[tx][ty]){
                f[tx][ty]=s+1;
                dfs(tx,ty,s+1);
            }
        }
    }
    int main(){
        cin>>n>>m;
        for(int i=1;i<=n;i++)
            for(int j=1;j<=m;j++) cin>>a[i][j];
        for(int i=1;i<=n;i++)
            for(int j=1;j<=m;j++){
                ans=0;
                dfs(i,j,1);
                maxn=max(maxn,ans);
            }
        cout<<maxn;
        return 0;
    }
    

    信息

    ID
    381
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    递交数
    1
    已通过
    0
    上传者