三角形的路径权

示出了一个数字三角形。  请编一个程序计算从顶至底的某处的一条路 径,使该路径所经过的数字的总和最大。  

每一步可沿左斜线向下或右斜线向下走;

1< 三角形行数< 25;  

三角形中的数字为整数< 1000;

输入第一行为N,表示有N行 后面N行表示三角形每条路的路径权

输出路径所经过的数字的总和最大的答案

样例输入

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

样例输出

30

问题链接:JSK-243 三角形的路径权

问题描述:(略)

问题分析

这是一个动态规划问题,有两种解法。

方法一:

不使用额外数组,从顶向下计算。

方法二:

使用额外数组,从底向上计算。需要注意数组大小!要多一行和一列保证可靠。

程序说明

写了一个带参数的宏定义MAX(a, b)来计算2个数的最大值,没有库函数只能自己实现。

参考链接:HDU2084 数塔【DP】

题记:动态规划算法的计算速度往往是快的。

AC的C语言程序如下:

/* JSK-243 三角形的路径权 */#include <stdio.h>
#include <string.h>#define MAX(a, b) (((a) > (b)) ? (a) : (b))#define N 25
int a[N + 1][N + 1], dp[N + 1][N + 1];int main()
{int n;while(scanf("%d", &n) != EOF) {for(int i=0; i<n; i++)for(int j=0; j<=i; j++)scanf("%d", &a[i][j]);memset(dp, 0, sizeof(dp));for(int i=n-1; i>=0; i--)for(int j=0; j<=i; j++)dp[i][j] = MAX(dp[i+1][j],dp[i+1][j+1]) + a[i][j];printf("%d\n", dp[0][0]);}return 0;
}

AC的C语言程序如下:

/* JSK-243 三角形的路径权 */#include <stdio.h>
#include <string.h>#define MAX(a, b) (((a) > (b)) ? (a) : (b))#define N 25
int a[N][N];int solve(int n)
{for(int i=1; i<n; i++)for(int j=0; j<=i; j++)if(j == 0)a[i][j] += a[i-1][j];elsea[i][j] = MAX(a[i][j] + a[i-1][j-1], a[i][j] + a[i-1][j]);int ans = 0;for(int i=n-1, j=0; j<n; j++)if(a[i][j] > ans)ans = a[i][j];return ans;
}int main()
{int n;while(scanf("%d", &n) != EOF) {memset(a, 0, sizeof(a));for(int i=0; i<n; i++)for(int j=0; j<=i; j++)scanf("%d", &a[i][j]);int ans = solve(n);printf("%d\n", ans);}return 0;
}

JSK-243 三角形的路径权【动态规划】相关推荐

  1. 三角形最小路径和(动态规划)

    原创公众号:bigsai 欢迎加入力扣打卡 文章已收录在 全网都在关注的数据结构与算法学习仓库 欢迎star 题目描述 力扣120原题 给定一个三角形 triangle ,找出自顶向下的最小路径和. ...

  2. [Leetcode][第120题][JAVA][三角形最小路径和][动态规划][递归]

    [问题描述][中等] [解答思路] 1. 动态规划思路一 自上而下 第 1 步:设计状态 f[i][j] 表示从三角形顶部走到位置 (i,j) 的最小路径和 位置(i,j) 指的是三角形中第 i 行第 ...

  3. LeetCode 120. 三角形最小路径和(动态规划)

    题目描述 给定一个三角形,找出自顶向下的最小路径和.每一步只能移动到下一行中相邻的结点上. 例如,给定三角形: [ [2], [3,4], [6,5,7], [4,1,8,3] ] 自顶向下的最小路径 ...

  4. 动态规划之求解三角形最小路径问题

    求解三角形最小路径问题 一.[问题描述]: 给定 高度为n的一个整数三角形,找出从顶部到底部的最小路径和,只能向先移动相邻的结点.首先输入n,接下来的1~n行,第i行输入i个整数,输出分为2行,第一行 ...

  5. leetcode--笔记——120. 三角形最小路径和

    120. 三角形最小路径和 给定一个三角形 triangle ,找出自顶向下的最小路径和. 每一步只能移动到下一行中相邻的结点上.相邻的结点 在这里指的是 下标 与 上一层结点下标 相同或者等于 上一 ...

  6. leetcode - 120. 三角形最小路径和

    120. 三角形最小路径和 ------------------------------------------ 给定一个三角形,找出自顶向下的最小路径和.每一步只能移动到下一行中相邻的结点上. 例如 ...

  7. 算法:三角形最小路径和

    题目 给定一个三角形,找出自顶向下的最小路径和.每一步只能移动到下一行中相邻的结点上. 例如,给定三角形: [[2],[3,4],[6,5,7],[4,1,8,3] ] 1 2 3 4 5 6 自顶向 ...

  8. 1288:三角形最佳路径问题-2019-07-04

    /* 1288:三角形最佳路径问题-2019-07-04 http://ybt.ssoier.cn:8088/problem_show.php?pid=1288 */ #include<bits ...

  9. 信息奥赛一本通 三角形最佳路径问题 (1288) 题解

    信息奥赛一本通 三角形最佳路径问题 (1288) 题解 时间限制: 1000 ms 内存限制: 65536 KB 题目描述 如下所示的由正整数数字构成的三角形: 7 3 8 8 1 0 2 7 4 4 ...

最新文章

  1. U-Net 3+: 全尺度的跳跃连接的 UNet
  2. 替换Android系统镜像system.img的方法
  3. 谷歌自动驾驶专利大曝光!
  4. 伍迷创意随想集 之 烧菜小帮手
  5. Fragment要点复习
  6. VC中怎么读取.txt文件
  7. 初识Sentinel
  8. 随机数文件,上传到hdfs的特定目录/logs下,用mr求和
  9. SAP技术专家的ABAP调试器培训材料
  10. es6添加删除class_es6中class类的使用
  11. List的五种去重方式
  12. 30,000人如何帮助挑选新的Bash徽标
  13. 使用Tslib在触摸屏上显示汉字
  14. 1从控制台输入年份,判断是闰年还是平年;
  15. rust和gta5哪个吃配置_晨报:Steam周销量榜 曝次世代GTA5用大镖客2引擎
  16. 虚拟机不能上网以及无法ping通百度的解决方案
  17. 逻辑斯蒂回归与梯度下降法
  18. Windows 10 的触摸板手势
  19. part Ⅲ Sightseeing and Visits 游览和参观??
  20. Cesium实现建筑物泛光特效,使用自定义shader实现源码

热门文章

  1. socat命令如何监听Linux串口设备通讯报文
  2. 开个坑: gitk和git容易被滥用的 cherry-pick 功能
  3. 简书bug:不支持复制粘贴纯文本
  4. 计算机职业学校杭州,杭州2021年计算机学校是干什么的
  5. 记一次PHP服务器500错误的解决方法
  6. 六年不惑:开发人员的“僵难Style”
  7. Wamp环境下集成【禅道】管理软件
  8. ndr4108贴片晶振是多少频率_流处理器、核心频率、 位宽……这些显卡参数你知道吗?—— 电脑硬件科普篇(八)...
  9. dao generator for php and mysql_mybatis generator 自动生成dao层映射代码
  10. 【java奇思妙想】一个能够改变字体颜色、字号大小、字体样式的html网页