王道机试指南 例题12.10 The Triangle

题目:

题目大意:

算法及思路:

动态规划。

代码:

#include <iostream>

using namespace std;

int main(){
    int n;
    cin>>n;
    int matrix[n][n],dp[n][n];
    for(int i=0;i<n;i++)
        for(int j=0;j<n;j++){
            matrix[i][j]=0;
            dp[i][j]=0;
        }

    for(int i=0;i<n;i++)
        for(int j=0;j<i+1;j++)
            cin>>matrix[i][j];

    for(int i=n-1;i>=0;i--)
        for(int j=0;j<n;j++){
            if(i==n-1)//底部dp初始化为对应点自身值
                dp[i][j]=matrix[i][j];
            else//其他位置用状态转移方程求解
                dp[i][j]=max(dp[i+1][j],dp[i+1][j+1])+matrix[i][j];
        }

    cout<<dp[0][0]<<endl;
    return 0;
}

运行结果:

全部评论

相关推荐

东孝子_强东我偶像:你怎么当孝子都和我时间一样😭
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务