hihoCoder-1037-数字三角形(dp)
数字三角形
问题描述
小Hi和小Ho在经历了螃蟹先生的任务之后被奖励了一次出国旅游的机会,于是他们来到了大洋彼岸的美国。美国人民的生活非常有意思,经常会有形形色色、奇奇怪怪的活动举办,这不,小Hi和小Ho刚刚下飞机,就赶上了当地的迷宫节活动。迷宫节里展览出来的迷宫都特别的有意思,但是小Ho却相中了一个其实并不怎么像迷宫的迷宫——因为这个迷宫的奖励非常丰富~
于是小Ho找到了小Hi,让小Hi帮助他获取尽可能多的奖品,小Hi把手一伸道:“迷宫的介绍拿来!”
小Ho选择的迷宫是一个被称为“数字三角形”的n(n不超过200)层迷宫,这个迷宫的第i层有i个房间,分别编号为1..i。除去最后一层的房间,每一个房间都会有一些通往下一层的房间的楼梯,用符号来表示的话,就是从第i层的编号为j的房间出发会有两条路,一条通向第i+1层的编号为j的房间,另一条会通向第i+1层的编号为j+1的房间,而最后一层的所有房间都只有一条离开迷宫的道路。这样的道路都是单向的,也就是说当沿着这些道路前往下一层的房间或者离开迷宫之后,小Ho没有办法再次回到这个房间。迷宫里同时只会有一个参与者,而在每个参与者进入这个迷宫的时候,每个房间里都会生成一定数量的奖券,这些奖券可以在通过迷宫之后兑换各种奖品。小Ho的起点在第1层的编号为1的房间,现在小Ho悄悄向其他参与者弄清楚了每个房间里的奖券数量,希望小Hi帮他计算出他最多能获得多少奖券。
提示一:盲目贪心不可取,搜索计算太耗时
提示二:记忆深搜逞神威,宽度优先解难题
提示三:总结归纳提公式,减少冗余是真理
输入
每个测试点(输入文件)有且仅有一组测试数据。
每组测试数据的第一行为一个正整数n,表示这个迷宫的层数。
接下来的n行描述这个迷宫中每个房间的奖券数,其中第i行的第j个数代表着迷宫第i层的编号为j的房间中的奖券数量。
测试数据保证,有100%的数据满足n不超过100
对于100%的数据,迷宫的层数n不超过100
对于100%的数据,每个房间中的奖券数不超过1000
对于50%的数据,迷宫的层数不超过15(小Ho表示2^15才3万多呢,也就是说……)
对于10%的数据,迷宫的层数不超过1(小Hi很好奇你的边界情况处理的如何?~)
对于10%的数据,迷宫的构造满足:对于90%以上的结点,左边道路通向的房间中的奖券数比右边道路通向的房间中的奖券数要多。
对于10%的数据,迷宫的构造满足:对于90%以上的结点,左边道路通向的房间中的奖券数比右边道路通向的房间中的奖券数要少。
输出
对于每组测试数据,输出一个整数Ans,表示小Ho可以获得的最多奖券数。
样例输入
5
2
6 4
1 2 8
4 0 9 6
6 5 5 3 6
样例输出
28
题意描述:
从上往下走每次只能往正下方或者右下方走,求走到底经过的数字和
满足:dp[i][j]=max(dp[i-1][j-1]+a[i][j],dp[i-1][j]+a[i][j]);
程序代码:
#include<stdio.h>
#include<algorithm>
using namespace std;
#include<string.h>
int a[110][110],dp[110][110];
int main()
{int n,i,j,count;while(scanf("%d",&n)!=EOF){memset(dp,0,sizeof(dp));for(i=1;i<=n;i++)for(j=1;j<=i;j++){scanf("%d",&a[i][j]);dp[i][j]=max(dp[i-1][j-1]+a[i][j],dp[i-1][j]+a[i][j]);}count=dp[n][1];for(i=2;i<=n;i++)count=max(count,dp[n][i]);printf("%d\n",count);}return 0;
}
hihoCoder-1037-数字三角形(dp)相关推荐
- hiho一下 第五周 Hihocoder #1037 : 数字三角形
#1037 : 数字三角形 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 问题描述 小Hi和小Ho在经历了螃蟹先生的任务之后被奖励了一次出国旅游的机会,于是他们来到了大洋彼岸 ...
- hihoCoder#1037 : 数字三角形(DP)
[题目链接]:click here~~ 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 问题描写叙述 小Hi和小Ho在经历了螃蟹先生的任务之后被奖励了一次出国旅游的机会,于是他 ...
- codevs——1220 数字三角形(棋盘DP)
时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description 如图所示的数字三角形,从顶部出发,在每一结点可以选择向左走或得向右走,一 ...
- 蓝桥杯 算法训练 数字三角形(最简单的DP)
传送门 题目描述 如下图示出了一个数字三角形. 请编一个程序计算从顶至底的某处的一条路径,使该路径所经过的数字的总和最大. ●每一步可沿左斜线向下或右斜线向下走: ●1<三角形行数≤100: ● ...
- Bailian2760 数字三角形【DP】
2760:数字三角形 描述 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 (图1) 图1给出了一个数字三角形.从三角形的顶部到底部有很多条不同的路径.对于每条路径,把路径上面的数加起来可 ...
- (蓝桥杯)数字三角形。。(最简单的dp题)
(图3.1-1)示出了一个数字三角形. 请编一个程序计算从顶至底的某处的一条路 径,使该路径所经过的数字的总和最大. ●每一步可沿左斜线向下或右斜线向下走: ●1<三角形行数≤100: ●三角形 ...
- LQ0072 数字三角形【DP】
题目来源:蓝桥杯2020初赛 C++ C组I题 题目描述 上图给出了一个数字三角形.从三角形的顶部到底部有很多条不同的路径. 对于每条路径,把路径上面的数加起来可以得到一个和,你的任务就是找到最大的和 ...
- 刘书dp学习笔记(1) 数字三角形与DAG上dp(上)
我之前没怎么看过刘书,然后前几天看了一下dp,感觉dp观被刷新了- 终于明白为什么说刘书是神书了! 用[]括住的是在下的一些浅见与笔记. 顺便一提,在下不保证代码是能过评测的,因为只试了其中几个数据. ...
- AcWing 1018. 最低通行费【动态规划】【线性DP】【数字三角形】
AcWing 1018. 最低通行费 一.题目链接 二.题目分析 (一)算法标签 (二)解题思路 三.AC代码 四.其它题解 一.题目链接 AcWing 1018. 最低通行费 二.题目分析 (一)算 ...
- NUC1041 数字三角形【DP】
USACO Gateway 数字三角形 时间限制: 1000ms 内存限制: 32768KB 问题描述 佳佳遇到一个麻烦的问题,如下图所示,一个数字三角形,佳佳想找出从三角形顶点到底某处的一条路径,使 ...
最新文章
- pyspark sparksession_pyspark中的行列互转
- sql join 与where的区别
- 易语言单窗口单ip软件源码_好人多窗口同步器:多台电脑同步视频演示
- 三星Galaxy Note系列旗舰今年确定缺席:超万名粉丝请愿望其回归
- 将python程序打包为exe及一些问题
- c语言case后接printf,C编程中switch。case 问题
- c++贪吃蛇_细致的C语言写贪吃蛇教程+详细思路-适合新手附源码
- Javascript s04
- java进阶学习 --java网络编程一(转)
- 66、加一(python)
- ctags linux,ctags --- 每天一个 Linux 命令
- 条码软件如何设置十六进制并跳号打印
- 多多自走棋服务器不稳定,《多多自走棋》将登陆Epic平台 PC版数据将与移动版互通...
- 开源或免费虚拟主机管理系统
- IM的扫码登录功能如何实现?
- fanuc换刀宏程序详解_FANUC宏程序大全+实例讲解
- 提升客户生命周期价值(CLV)的5大方法
- QQ聊天框变成方框口口口口的解决办法
- Verilog IIC AT24C128和LM75
- 华为设备配置篇——DHCP配置