1 条题解

  • 0
    @ 2024-2-6 11:51:14
    #include <bits/stdc++.h>
    using namespace std;
    int n,a[110][110],x=1,y=1;//n<=100 a数组(数塔)110即可
    int r[110][3]={{0,1,1}},k=1;
    int main(){
        cin>>n;
        for (int i=1;i<=n;i++){
            for (int j=1;j<=i;j++)cin>>a[i][j];
        }
        for (int i=n-1;i>=1;i--){
            for (int j=1;j<=i;j++)a[i][j]+=max(a[i+1][j],a[i+1][j+1]);
        }
        while(x<n){
            k++;
            if(a[x+1][y]>a[x+1][y+1]){
                r[k][1]=x+1;
                r[k][2]=y;
                x++;
            }else{
                r[k][1]=x+1;
                r[k][2]=y+1;
                x++;
                y++;
            }
        }
        for (int i=k;i>1;i--)cout<<r[i][1]<<','<<r[i][2]<<"->";
        cout<<"1,1"<<endl;
        cout<<a[1][1];
        return 0;
    }
    
    • 1

    【基础】数塔的行走路径?

    信息

    ID
    407
    时间
    1000ms
    内存
    64MiB
    难度
    4
    标签
    递交数
    21
    已通过
    16
    上传者