按照大佬说的动态规划思路,用迭代写的通过了😐。 int main(){ int N; cin>>N; vector<vector<int>> ta(N, vector<int>(N, 0)); vector<vector<int>> gold(ta); // 处理输入 for(int i=0;i<N;++i){ for(int j=0;j<=i;++j){ cin>>ta[i][j]; } } // 最后一层的金币最大值就是塔的值 for(int j=N-1;j>=0;--j){ gold[N-1][j]=ta[N-1][j]; } // 上面每一层某位置的金币最大值都等于左下和右下金币最大值再加上当前位置塔的金币值 for(int i=N-2;i>=0;--i){ for(int j=i;j>=0;--j){ gold[i][j]=max(gold[i+1][j],gold[i+1][j+1])+ta[i][j]; } } cout<<gold[0][0]<<endl; }
点赞 评论

相关推荐

03-02 10:51
邵阳学院 Java
红鲤鱼与绿鲤鱼i:看了你的头像不像找工作,像在找妹子
点赞 评论 收藏
分享
网安已死趁早转行:山东这地方有点说法
点赞 评论 收藏
分享
牛客网
牛客企业服务