1 条题解

  • 0
    @ 2023-11-19 16:54:02
    #include<iostream>
    using namespace std;
    int n,m,a[42][42],ans;
    int xx[4]={-1,0,1,0};
    int yy[4]={0,1,0,-1};
    void dfs(int x,int y){
        ans+=a[x][y];
        a[x][y]=0;
        if(x==n&&y==m)return;
        int maxn=0,tx,ty;
        for(int i=0;i<4;i++){
            int nx=x+xx[i];
            int ny=y+yy[i];
            if(a[nx][ny]>maxn){
                maxn=a[nx][ny];
                tx=nx;
                ty=ny;
            }
        }
        dfs(tx,ty);
    }
    int main(){
        cin>>n>>m;
        for(int i=1;i<=n;i++){
            for(int j=1;j<=m;j++){
                cin>>a[i][j];
            }
        }
        dfs(1,1);
        cout<<ans;
    }
    
    • 1

    信息

    ID
    3022
    时间
    1000ms
    内存
    256MiB
    难度
    4
    标签
    递交数
    93
    已通过
    40
    上传者