JSK-243 三角形的路径权【动态规划】
三角形的路径权
示出了一个数字三角形。 请编一个程序计算从顶至底的某处的一条路 径,使该路径所经过的数字的总和最大。
每一步可沿左斜线向下或右斜线向下走;
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 三角形的路径权【动态规划】相关推荐
- 三角形最小路径和(动态规划)
原创公众号:bigsai 欢迎加入力扣打卡 文章已收录在 全网都在关注的数据结构与算法学习仓库 欢迎star 题目描述 力扣120原题 给定一个三角形 triangle ,找出自顶向下的最小路径和. ...
- [Leetcode][第120题][JAVA][三角形最小路径和][动态规划][递归]
[问题描述][中等] [解答思路] 1. 动态规划思路一 自上而下 第 1 步:设计状态 f[i][j] 表示从三角形顶部走到位置 (i,j) 的最小路径和 位置(i,j) 指的是三角形中第 i 行第 ...
- LeetCode 120. 三角形最小路径和(动态规划)
题目描述 给定一个三角形,找出自顶向下的最小路径和.每一步只能移动到下一行中相邻的结点上. 例如,给定三角形: [ [2], [3,4], [6,5,7], [4,1,8,3] ] 自顶向下的最小路径 ...
- 动态规划之求解三角形最小路径问题
求解三角形最小路径问题 一.[问题描述]: 给定 高度为n的一个整数三角形,找出从顶部到底部的最小路径和,只能向先移动相邻的结点.首先输入n,接下来的1~n行,第i行输入i个整数,输出分为2行,第一行 ...
- leetcode--笔记——120. 三角形最小路径和
120. 三角形最小路径和 给定一个三角形 triangle ,找出自顶向下的最小路径和. 每一步只能移动到下一行中相邻的结点上.相邻的结点 在这里指的是 下标 与 上一层结点下标 相同或者等于 上一 ...
- leetcode - 120. 三角形最小路径和
120. 三角形最小路径和 ------------------------------------------ 给定一个三角形,找出自顶向下的最小路径和.每一步只能移动到下一行中相邻的结点上. 例如 ...
- 算法:三角形最小路径和
题目 给定一个三角形,找出自顶向下的最小路径和.每一步只能移动到下一行中相邻的结点上. 例如,给定三角形: [[2],[3,4],[6,5,7],[4,1,8,3] ] 1 2 3 4 5 6 自顶向 ...
- 1288:三角形最佳路径问题-2019-07-04
/* 1288:三角形最佳路径问题-2019-07-04 http://ybt.ssoier.cn:8088/problem_show.php?pid=1288 */ #include<bits ...
- 信息奥赛一本通 三角形最佳路径问题 (1288) 题解
信息奥赛一本通 三角形最佳路径问题 (1288) 题解 时间限制: 1000 ms 内存限制: 65536 KB 题目描述 如下所示的由正整数数字构成的三角形: 7 3 8 8 1 0 2 7 4 4 ...
最新文章
- U-Net 3+: 全尺度的跳跃连接的 UNet
- 替换Android系统镜像system.img的方法
- 谷歌自动驾驶专利大曝光!
- 伍迷创意随想集 之 烧菜小帮手
- Fragment要点复习
- VC中怎么读取.txt文件
- 初识Sentinel
- 随机数文件,上传到hdfs的特定目录/logs下,用mr求和
- SAP技术专家的ABAP调试器培训材料
- es6添加删除class_es6中class类的使用
- List的五种去重方式
- 30,000人如何帮助挑选新的Bash徽标
- 使用Tslib在触摸屏上显示汉字
- 1从控制台输入年份,判断是闰年还是平年;
- rust和gta5哪个吃配置_晨报:Steam周销量榜 曝次世代GTA5用大镖客2引擎
- 虚拟机不能上网以及无法ping通百度的解决方案
- 逻辑斯蒂回归与梯度下降法
- Windows 10 的触摸板手势
- part Ⅲ Sightseeing and Visits 游览和参观??
- Cesium实现建筑物泛光特效,使用自定义shader实现源码
热门文章
- socat命令如何监听Linux串口设备通讯报文
- 开个坑: gitk和git容易被滥用的 cherry-pick 功能
- 简书bug:不支持复制粘贴纯文本
- 计算机职业学校杭州,杭州2021年计算机学校是干什么的
- 记一次PHP服务器500错误的解决方法
- 六年不惑:开发人员的“僵难Style”
- Wamp环境下集成【禅道】管理软件
- ndr4108贴片晶振是多少频率_流处理器、核心频率、 位宽……这些显卡参数你知道吗?—— 电脑硬件科普篇(八)...
- dao generator for php and mysql_mybatis generator 自动生成dao层映射代码
- 【java奇思妙想】一个能够改变字体颜色、字号大小、字体样式的html网页