数字三角形问题(简单动态规划)-算法设计与分析

来源:互联网 发布:淘宝详情页制作思路 编辑:程序博客网 时间:2024/05/20 13:16
const int maxn=100;int a[maxn][maxn];int dp[maxn][maxn];int main(){    int n;    cin>>n;    memset(a,0,sizeof(a));    memset(dp,0,sizeof(dp));    for(int i=1;i<=n;i++)        for(int j=1;j<=i;j++)            cin>>a[i][j];    for(int i=1;i<=n;i++) dp[n][i]=a[n][i];    for(int i=n-1;i>0;i--)        for(int j=1;j<=i;j++)            dp[i][j]=max(dp[i+1][j],dp[i+1][j+1])+a[i][j];    cout<<dp[1][1]<<endl;    return 0;}/*573 88 1 02 7 4 44 5 2 6 5*/