数字三角形问题
Time Limit: 1000 ms Memory Limit: 65536 KiB

Problem Description
给定一个由n行数字组成的数字三角形如下图所示。试设计一个算法,计算出从三角形的顶至底的一条路径,使该路径经过的数字总和最大。

对于给定的由n行数字组成的数字三角形,计算从三角形的顶至底的路径经过的数字和的最大值。
Input
输入数据的第1行是数字三角形的行数n,1≤n≤100。接下来n行是数字三角形各行中的数字。所有数字在0…99之间。
Output
输出数据只有一个整数,表示计算出的最大值。
Sample Input
5
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5
Sample Output
30

分析:
dp[i][j]姑且称为问题的状态
从下往上分析,要想到dp[1][1]的和最大
你要考虑两个子问题:
1,dp[2][1]要最大
2,或者dp[2][2]要最大
可以发现dp[i][j]只与i+1层有关系
依次往下一层分析即可......
即得到状态转移方程:dp[i][j]=max(dp[i+1][j],dp[i+1][j+1])+f[i][j]
它把状态dp[i][j]转移为dp[i+1][j]+dp[i+1][j+1].
最后从最后一层往上计算即得出dp[1][1]。
#include <cstdio>
#include <algorithm>
using namespace std;
const int max1 = 1000;
int f[max1][max1],dp[max1][max1];
int main()
{int n;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{for(int j=1;j<=i;j++){scanf("%d",&f[i][j]);///输入三角形数字}
}
///边界
for(int j = 1;j <= n;j++)
{dp[n][j]=f[n][j];
}
///从n-1层不断往上走,计算出dp[i][j]
for(int i = n-1; i >=1; i--)
{for(int j = 1; j <= i; j++){dp[i][j] = max(dp[i+1][j],dp[i+1][j+1])+f[i][j];}
}
printf("%d\n",dp[1][1]);return 0;
}

dp---数字三角形问题相关推荐

  1. 经典DP 数字三角形

    原题链接: https://www.acwing.com/problem/content/900/https://www.acwing.com/problem/content/900/题目大意: 给定 ...

  2. lightoj 1004 dp:数字三角形

    题目链接:http://lightoj.com/volume_showproblem.php?problem=1004 #include <cstdio> #include <cst ...

  3. AcWing 1018. 最低通行费【动态规划】【线性DP】【数字三角形】

    AcWing 1018. 最低通行费 一.题目链接 二.题目分析 (一)算法标签 (二)解题思路 三.AC代码 四.其它题解 一.题目链接 AcWing 1018. 最低通行费 二.题目分析 (一)算 ...

  4. C++---数字三角形模型---最低通行费(每日一道算法2023.1.14)

    注意事项: 本题为线性dp-数字三角形的扩展题. 题目: 一个商人穿过一个 N×N 的正方形的网格,去参加一个非常重要的商务活动. 他要从网格的左上角进,右下角出. 每穿越中间 1 个小方格,都要花费 ...

  5. codevs——1220 数字三角形(棋盘DP)

     时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解 题目描述 Description 如图所示的数字三角形,从顶部出发,在每一结点可以选择向左走或得向右走,一 ...

  6. hihoCoder#1037 : 数字三角形(DP)

    [题目链接]:click here~~ 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 问题描写叙述 小Hi和小Ho在经历了螃蟹先生的任务之后被奖励了一次出国旅游的机会,于是他 ...

  7. 蓝桥杯 算法训练 数字三角形(最简单的DP)

    传送门 题目描述 如下图示出了一个数字三角形. 请编一个程序计算从顶至底的某处的一条路径,使该路径所经过的数字的总和最大. ●每一步可沿左斜线向下或右斜线向下走: ●1<三角形行数≤100: ● ...

  8. Bailian2760 数字三角形【DP】

    2760:数字三角形 描述 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 (图1) 图1给出了一个数字三角形.从三角形的顶部到底部有很多条不同的路径.对于每条路径,把路径上面的数加起来可 ...

  9. (蓝桥杯)数字三角形。。(最简单的dp题)

    (图3.1-1)示出了一个数字三角形. 请编一个程序计算从顶至底的某处的一条路 径,使该路径所经过的数字的总和最大. ●每一步可沿左斜线向下或右斜线向下走: ●1<三角形行数≤100: ●三角形 ...

  10. LQ0072 数字三角形【DP】

    题目来源:蓝桥杯2020初赛 C++ C组I题 题目描述 上图给出了一个数字三角形.从三角形的顶部到底部有很多条不同的路径. 对于每条路径,把路径上面的数加起来可以得到一个和,你的任务就是找到最大的和 ...

最新文章

  1. 【ES6】异步操作和async函数
  2. Jenkins+docker+maven+git自动化构建与部署
  3. python web flask开发框架_零基础入门python web框架Flask开发
  4. RMAN的一些术语解释
  5. vant组件搜索并选择_借助PARTsolutions 选型助手,轻松快速地找到组件。
  6. IntegerCache的妙用和陷阱
  7. SmartGit破解使用的个人方法
  8. CSS实现多栏布局的几种方式
  9. BT下载原理学习简介
  10. 《Win测试的学习笔记》——Introduction
  11. 【超详细】| 使用Vmware 安装win7虚拟机
  12. 学习模式上的记录之统计篇四 关于excel里添加趋势线和回归统计的R square数值不一致的情况
  13. 软件测试——图书管理系统的测试计划书
  14. idea常用图标总结
  15. psv无线怎么连接电脑连接电脑连接服务器,psv如何连接电脑复制视频,音乐,图片等资料教程...
  16. 软件开发实训(720科技)――第五课:前端css规范
  17. 智能卡卡发卡流程(收藏4)
  18. 《别做正常的傻瓜》1——结果偏见
  19. 使用 wget 整站下载
  20. php漂浮广告代码,JS随机漂浮广告代码具体实例

热门文章

  1. ue4打包安卓发送udp报文_内核udp报文截取、修改和发送
  2. python类的应用_如何剖析python应用程序的类方法?
  3. python爬取图文新闻_python爬取新闻需要什么软件
  4. 软件工程导论 统一建模语言UML概述
  5. 牛客小白月赛——G题
  6. 解线性方程组的迭代法(雅可比、高斯-塞德尔迭代法)
  7. 目标检测——SSD的学习笔记
  8. skimage exposure模块解读
  9. 排序(1):冒泡排序
  10. 敏捷开发般若敏捷系列之四:如何推广敏捷(上)(无我,无人,无众生)