• 简单动态规划---动态的数字三角形


    动态的数字三角形
    难度级别:B; 运行时间限制:1000ms; 运行空间限制:51200KB; 代码长度限制:2000000B
    试题描述

        一个数字组成的三角形,有n行,第i行有i个数。从第一个数开始,每次可以往左下或右下走一格,直到走到最后一行,把沿途经过的数全部加起来。如何走才能得到最大的和?
        举个例子:
                           
        为了简单起见,输入时将每行的数依次输入,第一个数之前并不输入空格。

    输入
    第一行:n,表示这个三角形共有n行
    第二至n+1行:依次为这个数字三角形各行的数据(按顺序输入),两数之间有一个空格分隔。 
    输出
    一个数,表示最大的和
    输入示例
    4
    1
    3 2
    4 10 1
    4 3 2 20
    输出示例
    24
     1 #include<iostream>
     2 #include<algorithm>
     3 using namespace std;
     4 #define MAXN 1000
     5 int n,i,j,a[MAXN][MAXN];
     6 int main()
     7 {
     8     scanf("%d",&n);
     9     for(i=1;i<=n;i++)
    10         for(j=1;j<=i;j++)scanf("%d",&a[i][j]);
    11     for(i=n-1;i>=1;i--)
    12         for(j=1;j<=i;j++)a[i][j]=max(a[i][j]+a[i+1][j],a[i][j]+a[i+1][j+1]);
    13     printf("%d
    ",a[1][1]);
    14     return 0;
    15 }
    View Code
    你——悟到了么?
  • 相关阅读:
    第二阶段冲刺进程2
    第二阶段冲刺进程1
    Alpha版使用说明
    回复每组的意见的评价
    每个组针对本组提出的意见的整理
    软件项目第一次Sprint总结
    站立会议7
    站立会议6
    团队博客11
    团队博客10
  • 原文地址:https://www.cnblogs.com/wxjor/p/5432649.html
Copyright © 2020-2023  润新知