7-8 数字三角形 (31 分)(思路+详解+动态规划)Come Baby!!!!!!!!!!!
一:题目
观察下面的数字金字塔。写一个程序查找从最高点到底部任意处结束的路径,使路径经过数字的和最大。每一步可以从当前点走到左下方的点也可以到达右下方的点。
在上面的样例中,从13到8到26到15到24的路径产生了最大的和86。
输入格式:
第一个行包含R(1≤ R≤1000),表示行的数目。
后面每行为这个数字金字塔特定行包含的整数。
所有的被供应的整数是非负的且不大于100。
输出格式:
单独的一行,包含那个可能得到的最大的和。
输入样例:
5
13
11 8
12 7 26
6 14 15 8
12 7 13 24 11
输出样例:
86
二:思路
思路:
1.分析动态规划:
本题当中的求取最终结果依然是跳跃性的,也就是后面的选择有可能要比前面好
故判定为动态规划
2.本题当中可以将输入的数据输入二维数组当中,将其放置在下三角形当中
3.通过分析数据 :我们可以得出一个递推方程
就是每次和其上方和左上方所对应的数相加,选取较大的数填写在网格当中
m[i][j] = max(m[i-1][j]+m[i][j],m[i-1][j-1]+m[i][j])
4.然后就可以在最后一行选取一个较大的结果就是路径和最大的值
5.本题的递推方程思路和最长公共子序列类似,都是建好网格后找递推方程
三:上码
/**思路:1.分析动态规划:本题当中的求取最终结果依然是跳跃性的,也就是后面的选择有可能要比前面好故判定为动态规划2.本题当中可以将输入的数据输入二维数组当中,将其放置在下三角形当中3.通过分析数据 :我们可以得出一个递推方程就是每次和其上方和左上方所对应的数相加,选取较大的数填写在网格当中m[i][j] = max(m[i-1][j]+m[i][j],m[i-1][j-1]+m[i][j])4.然后就可以在最后一行选取一个较大的结果就是路径和最大的值 */ #include<bits/stdc++.h>
using namespace std;int main(){int N;cin >> N;int a[N+1][N+1];//初始化数组a (升级新技能 不在写for循环进行初始化了)memset(a,0,sizeof(a)); for(int i = 1; i <= N; i++){for(int j = 1; j <= i; j++){cin >> a[i][j];}}// for(int i = 0; i <= N; i++){// for(int j = 0; j <= N; j++){// cout << a[i][j] << ' ';
// }
// cout << endl;
// }//开始建立网格和更新for(int i = 1; i <= N; i++){for(int j = 1; j <= N; j++){a[i][j] = max(a[i][j] + a[i-1][j],a[i][j]+a[i-1][j-1]);}} int maxx = 0;for(int j = 1; j <= N; j++){maxx = max(maxx,a[N][j]);}cout << maxx;}
四:总结
可能是思路相似,所以花了很短时间做出来了,许久没有会因为一道题开心过了,我也本想想在家一样天天刷一道题,写题解,但在学校,也就晚上写会儿算法题到10点就回宿舍了,不能像在一样,想做到几点就做到几点,而且算法题确实很难理解,但是其代码,很简洁,让人又爱又恨,还有就是确实很花时间,可能我太菜了,但菜鸡正在成长,我们共勉,共同加油。我也有不会做的题,我的学习顺序是先分析数据,大概什么摸样想清楚后,如果写不出码,就先看视频(去B站上),然后,再看一篇优质博客,把不会的学会 ,可能一篇博客其中有大佬用的东西,你没见过,没关系,那就去学,把不会的学会综合到一块,我们会的不仅仅是一道题,这就好比分治算法,把一个大问题转化成一些小问题,再对小问题进行求解,最后综合小问题的解就是大问题的解,但我们在学习过程中我们不仅仅回了这道题,还学会了一些其他东西,下次可能就会用上
,本题当中的初始化数组memset(a,0,sizeof(a)),我以后会用上的,还有求取最大值直接调用一个max,不去写一个for循环+一个if判断了,这是我前几天写石子合并当中学的,今天用到后,我就直接写出来了。可能是心情好点,一下说了这么多,
还是老样子,加油陌生人!我们共同进步!!!!!!!!!!!!!!!!!
7-8 数字三角形 (31 分)(思路+详解+动态规划)Come Baby!!!!!!!!!!!相关推荐
- 7-3 符号三角形 (10 分)(思路+详解)
一:题目 Come 宝 !!! 输入格式: 第一行符号个数n 输出格式: 符合要求的三角形个数 输入样例: 4 结尾无空行 输出样例: 6 二:思路 思路: 1.如果我们确立的第一行的符号是什么 ,那 ...
- 7-5 流水作业调度 (10 分)(思路+详解+johnson解析)Come Baby!!!!!!!!!!
一:题目 n个作业{1,2,-,n}要在由2台机器M1和M2组成的流水线上完成加工.每个作业加工的顺序都是先在M1上加工,然后在M2上加工.M1和M2加工作业i所需的时间分别为ai和bi.流水作业调度 ...
- 1010 Lehmer Code (35 分)(思路+详解+树状数组的学习+逆序对+map+vector) 超级详细 Come baby!!!
一:题目 According to Wikipedia: "In mathematics and in particular in combinatorics, the Lehmer cod ...
- 7-43 字符串关键字的散列映射 (25 分)(思路+详解+不懂的兄弟们来呀)兄弟们我干了5个小时,一个一个测试点过的
一:题目 7-43 字符串关键字的散列映射 (25 分) 给定一系列由大写英文字母组成的字符串关键字和素数P,用移位法定义的散列函数H(Key)将关键字Key中的最后3个字符映射为整数,每个字符占5位 ...
- 10-4 6-4 查询厂商“D“生产的PC和便携式电脑的平均价格 (10 分)思路+详解+测试用例
前言:测试用表 贴心杰将这个测试表分享给大家 ,如果大家做题的时候发现那个点过不去,一定不要直接看别人的博客,先自己测试用例,如果思路也对 ,验证数据也对,还有错误 你再看看别人的思路!!! CREA ...
- 7-3 凸多边形最优三角剖分 (10 分)(思路+详解+分析题意+动态规划)Come Baby!!!!!!!!!
一:题目: 给定n边凸多边形P,要求确定该凸多边形的三角剖分(将多边形分割成n-2个三角形),使得该三角剖分中诸三角形上权之和为最小.各边弦的权值以由输入数据给出,以无向图的形式表示.三角形的权值等于 ...
- 7-49 打印学生选课清单 (25 分)(思路+详解+map做法(一对多)+超时解决)Come baby!
一:题目 假设全校有最多40000名学生和最多2500门课程.现给出每门课的选课学生名单,要求输出每个前来查询的学生的选课清单. 输入格式: 输入的第一行是两个正整数:N(≤40000),为前来查询课 ...
- 7-46 新浪微博热门话题 (30 分)(思路+详解+set + map)pta逐个点过的 来呀兄弟们
一 :题目 新浪微博可以在发言中嵌入"话题",即将发言中的话题文字写在一对"#"之间,就可以生成话题链接,点击链接可以看到有多少人在跟自己讨论相同或者相似的话题 ...
- 7-45 航空公司VIP客户查询 (25 分)(思路+详解+map用法解释+超时解决)兄弟们来呀冲压呀呀呀呀
一:题目 不少航空公司都会提供优惠的会员服务,当某顾客飞行里程累积达到一定数量后,可以使用里程积分直接兑换奖励机票或奖励升舱等服务.现给定某航空公司全体会员的飞行记录,要求实现根据身份证号码快速查询会 ...
最新文章
- cos2x = cos^2x-sin^2x的推导
- WPF WindowStyle为None
- php检测类是否存在,php判断类是否存在函数class_exists用法分析
- context:annotation-config 跟 context:component-scan诠释及区别
- 栅格像元做地理坐标映射后的坐标值是像元中心点还是其他位置?
- mysql删除员工_数据库删除职工信息
- 信息学奥赛一本通 1158:求1+2+3+...
- 天涯明月刀怎么导入php捏脸数据,天涯明月刀捏脸数据怎么导入 天涯明月刀捏脸数据在哪...
- [Lydsy1806月赛] 最长公共子序列
- Linux知识--初始linux
- linux镜像文件_深度UI + Ubuntu系统,堪称最强最美Linux发行版!你敢升级吗?
- 增值税发票税控开票软件 无法正常启动
- uniapp 获取时间戳
- js二进制流转换成图片_JavaScript PNG 图片编码和解码
- 论文阅读 (九):A survey on instance selection for active learning (2012)
- 大数据技术如何影响企业决策?
- java支付宝获取付款信息,java支付宝支付开发教程
- Android O、N版本修改dex2oat编译选项,减少占用ROM空间或者加快安装速度
- 电商指标项目-背景及技术选型
- 如何做成gif动画图片?教你简单三步制作gif动图
热门文章
- 非涉密计算机检查的通知,关于开展非涉密计算机及可移动存储介质专项清理活动的紧急通知...
- 【地理信息系统GIS】教案(七章全)第一章:地理信息系统概述
- 【计算机图形学】实验:C#.net环境下的图形变换完整实验操作流程
- C语言试题十二之m个人的成绩存放在score数组中,请编写函数function,它的功能是:将低于平均分的人数作为函数值返回,将低于平均分的分数放在below所指定的数组中。
- IOS之学习笔记十四(协议的定义和实现)
- Hibernate之悲观锁与乐观锁
- 《看聊天记录都学不会C语言?太菜了吧》(15)你学了一节课的函数我5分钟搞定了,还很熟
- composer切换源_Composer具体安装方法
- mysql分组查询和子查询语句_6.MySQL分组聚合查询,子查询
- python生成静态库_使用boost.python静态库