问题 E: 【动态规划】The Triangle

时间限制: 1 Sec  内存限制: 128 MB
提交: 24  解决: 24
[提交][状态][讨论版]

题目描述

7
3 8
8 1 0
2 7 4 4
4 5 2 6 5
(Figure 1)

Figure 1 shows a number triangle. Write a program that calculates the highest sum of numbers passed on a route that starts at the top and ends somewhere on the base. Each step can go either diagonally down to the left or diagonally down to the right.

输入

Your program is to read from standard input. The first line contains one integer N: the number of rows in the triangle. The following N lines describe the data of the triangle. The number of rows in the triangle is > 1 but <= 100. The numbers in the triangle, all integers, are between 0 and 99.

输出

Your program is to write to standard output. The highest sum is written as an integer.

样例输入

5
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5

样例输出

30
解题思路:首先从上往下是i到n-1,从左往右是j到i;
  要从上往下加,先看最上面的7,可以加3等于10,可以加8等于15;
  然后看第三行当j等于0,只能加到它右上方那个上,当j=i,只能加到左上方那个数上。
  当j!=0或i的时候,可以加到左上方,可以加到右上方,但要求最后的和最大,所以要加到和大的那一个上面。
  并且加到大的那一个上这一决策对之后的没有影响,无后效性。
  状态转移方程为:sum[i][j]=max(sum[i-1][j],sum[i-1][j-1])+a[i][j];
  从上到下,从左到右依次遍历,最后一行其中一个数上会有最大值。
  便利最后一行sum[i],找出最大值。
#include <iostream>
#include <cstdio> using namespace std; int main()
{
int a[][];
int sum[][];
int n;
int maxx;
while(scanf("%d",&n)!=EOF){
for(int i=;i<n;i++){
for(int j=;j<i+;j++){
scanf("%d",&a[i][j]);
}
}
sum[][]=a[][];
for(int i=;i<n;i++){
for(int j=;j<i+;j++){
if(j==){
sum[i][j]=sum[i-][j]+a[i][j];
}
if(j==i){
sum[i][j]=sum[i-][i-]+a[i][j];
}
sum[i][j]=max(sum[i-][j],sum[i-][j-])+a[i][j];
}
}
maxx=;
for(int i=;i<n;i++){
if(maxx<sum[n-][i]){
maxx=sum[n-][i];
}
}
printf("%d\n",maxx);
}
return ;
}

【动态规划】The Triangle的更多相关文章

  1. LeetCode之“动态规划”:Triangle

    题目链接 题目要求: Given a triangle, find the minimum path sum from top to bottom. Each step you may move to ...

  2. LeetCode----Array

    Remove Duplicates from Sorted Array 思路:两个指针,头指针在0,尾指针从1开始寻找,找到第一个不等于头指针值的数,覆盖掉头指针后面那个数,然后尾指针往后移. pub ...

  3. Algorithm Exercises

    汇总一些常见的算法题目,参考代码. 注:部分题目没有合适的oj地址 枚举 Perfect Cubes.Biorhythms.Counterfeit Dollar.EXTENDED LIGHTS OUT ...

  4. POJ 1163 The Triangle(简单动态规划)

    http://poj.org/problem?id=1163 The Triangle Time Limit: 1000MS   Memory Limit: 10000K Total Submissi ...

  5. Leetcode OJ : Triangle 动态规划 python solution

    Total Accepted: 31557 Total Submissions: 116793     Given a triangle, find the minimum path sum from ...

  6. The Triangle (简单动态规划)

    7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 (Figure 1) Figure 1 shows a number triangle. Write a program that calc ...

  7. POJ - 1163 The Triangle 【动态规划】

    一.题目 The Triangle 二.分析 动态规划入门题. 状态转移方程$$DP[i][j] = A[i][j] + max(DP[i-1][j], DP[i][j])$$ 三.AC代码 1 #i ...

  8. LeetCode -- Triangle 路径求最小和( 动态规划问题)

    Given a triangle, find the minimum path sum from top to bottom. Each step you may move to adjacent n ...

  9. Triangle(动态规划)

    题目描述 Given a triangle, find the minimum path sum from top to bottom. Each step you may move to adjac ...

随机推荐

  1. 思维导图XMiand

    XMiand: 异常强大的国产思维导图工具,还能将图同步到服务器上.做思维导图和头脑风暴必备软件,还能转换绘制鱼骨图.二维图.树形图.逻辑图.组织结构图.

  2. PowerDesigner导出的sql中去掉双引号,主要用于Oracle

    如题,这些双引号对于Oracle建表实在是糟糕透了: 解决方法: (转载,作者的百度已经挂了,无法放上链接,自私一把,以前的Oracle项目不见了,无法展示) 1.去掉Oracle生成的SQL创建语句 ...

  3. USACO 3.2 kimbits DP

    自己YY了个DP:设f[n][l]为n位数中包含不超过l个1的总个数 f[n][l]=f[n-1][l]+f[n-1][l-1] 然后用_search()从高位向低位扫描即可,tmp记录当前已记下多少 ...

  4. Mac OS X终端下apache操作

    重启apache:sudo /usr/sbin/apachectl restart 关闭apache:sudo /usr/sbin/apachectl stop 开启apache:sudo /usr/ ...

  5. 单步调试 step into/step out/step over 区别

    step into:单步执行,遇到子函数就进入并且继续单步执行(简而言之,进入子函数): step over:在单步执行时,在函数内遇到子函数时不会进入子函数内单步执行,而是将子函数整个执行完再停止, ...

  6. Java及Android开发环境搭建

    前言 自从接触java以来,配置环境变量折腾了好几次,也几次被搞得晕头转向,后来常常是上网查阅相关资料才解决.但是过一段时间后一些细节就会记不清了,当要在其他机子上配置时又得上网查或者查阅相关书籍,如 ...

  7. 快速tab应用

    ZCTabNav-master https://github.com/zcsoft/ZCTabNav 层次构架清楚,很适合快速,导入

  8. localdb链接字符串

    <add name="GitCandyContext" connectionString="Data Source=(localdb)\v11.0;Integrat ...

  9. input file美化

    <style> a{display:inline-block; width:100px; height:40px; position:relative; overflow:hidden;} ...

  10. html中table的画法及table和div的区别

    最近项目中,根据客户的要求需要在页面上展示各种报表什么的,各种表格的都会出现.这里也将table的画法,做一下总结.办法虽笨但很实用.这也是从高人那里学来的,总之是屡试不爽啊.就以下面的表格为例. 若 ...