题目描述
在一座山上,有很多很多珠宝,它们散落在山底通往山顶的每条道路上,不同道路上的珠宝的数目也各不相同.下图为一张藏宝地图:

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

”夺宝奇兵”从山下出发,到达山顶,如何选路才能得到最多的珠宝呢?在上图所示例子中,按照5-> 7-> 8-> 3-> 7的顺序,将得到最大值30
输入
第一行正整数N(100> =N> 1),表示山的高度
接下来有N行非负整数,第i行有i个整数(1< =i< =N),表示山的第i层上从左到右每条路上的珠宝数目
输出
一个整数,表示从山底到山顶的所能得到的珠宝的最大数目.
样例输入
5
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5
样例输出
30
思路:dp[i][j]代表的是(i,j)从底向上能获得的珠宝最大数目。两种做法,记忆化搜索||DP,这两种方法的思路都是一样的。
记忆化搜索:

#include<bits/stdc++.h>
#define ll long long
using namespace std;const int maxx=1e2+10;
int dp[maxx][maxx];
int a[maxx][maxx];
int n;inline void dfs(int x,int y)
{if(dp[x][y]!=-1) return ;if(y>x) return ;if(x==n){dp[n][y]=a[n][y];return ;}int s=0;dfs(x+1,y);dfs(x+1,y+1);dp[x][y]=max(dp[x+1][y],dp[x+1][y+1])+a[x][y];
}
int main()
{while(~scanf("%d",&n)){for(int i=1;i<=n;i++) for(int j=1;j<=i;j++) scanf("%d",&a[i][j]);memset(dp,-1,sizeof(dp));dfs(1,1);cout<<dp[1][1]<<endl;}return 0;
}

DP

#include<bits/stdc++.h>
#define ll long long
using namespace std;const int maxx=2e2+10;
int a[maxx][maxx];
int b[maxx][maxx];
int n;int main()
{scanf("%d",&n);for(int i=1;i<=n;i++){for(int j=1;j<=i;j++) scanf("%d",&a[i][j]);}memset(b,-1,sizeof(b));b[1][1]=a[1][1];for(int i=2;i<=n;i++){for(int j=1;j<=i;j++){b[i][j]=a[i][j]+max(b[i-1][j],b[i-1][j-1]);}}int ans=-1;for(int i=1;i<=n;i++) ans=max(ans,b[n][i]);cout<<ans<<endl;return 0;
}

努力加油a啊

[蓝桥杯][算法提高VIP]夺宝奇兵(记忆化搜索||DP)相关推荐

  1. [蓝桥杯][算法提高VIP]夺宝奇兵-递推+记忆化搜索

    题目描述 在一座山上,有很多很多珠宝,它们散落在山底通往山顶的每条道路上,不同道路上的珠宝的数目也各不相同.下图为一张藏宝地图: 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 " ...

  2. [蓝桥杯][算法提高VIP]夺宝奇兵-dp

    题目描述 在一座山上,有很多很多珠宝,它们散落在山底通往山顶的每条道路上,不同道路上的珠宝的数目也各不相同.下图为一张藏宝地图: 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 " ...

  3. 题目 1514: [蓝桥杯][算法提高VIP]夺宝奇兵

    时间限制: 1Sec 内存限制: 128MB 提交: 915 解决: 583 题目描述 在一座山上,有很多很多珠宝,它们散落在山底通往山顶的每条道路上,不同道路上的珠宝的数目也各不相同.下图为一张藏宝 ...

  4. [蓝桥杯][算法提高]和谐宿舍2(记忆化搜索)

    问题描述 我的某室友学过素描,墙上有n张他的作品.这些作品都是宽度为1,高度不定的矩形,从左到右排成一排,且底边在同一水平线上. 宿舍评比就要来了,为了及格,我们决定买不多于m块的矩形木板,把这些作品 ...

  5. [蓝桥杯][算法提高VIP]阮小二买彩票

    [蓝桥杯][算法提高VIP]阮小二买彩票 题目描述 在同学们的帮助下,阮小二是变的越来越懒了, 连算账都不愿意自己亲自动手了,每天的工作就是坐在电脑前看自己的银行账户的钱是否有变多.可是一段时间观察下 ...

  6. c语言oj题1923偶数之和,问题 1923: [蓝桥杯][算法提高VIP]学霸的迷宫 (BFS)

    题目描述 学霸抢走了大家的作业,班长为了帮同学们找回作业,决定去找学霸决斗.但学霸为了不要别人打扰,住在一个城堡里,城堡外面是一个二维的格子迷宫,要进城堡必须得先通过迷宫.因为班长还有妹子要陪,磨刀不 ...

  7. [蓝桥杯][算法提高VIP]阮小二买彩票[递归全排列]

    题目 1578: [蓝桥杯][算法提高VIP]阮小二买彩票 时间限制: 1Sec 内存限制: 128MB 提交: 348 解决: 153 题目描述 在同学们的帮助下,阮小二是变的越来越懒了, 连算账都 ...

  8. [蓝桥杯][算法提高VIP]数的划分(记忆化搜索)

    题目描述 一个正整数可以划分为多个正整数的和,比如n=3时: 3:1+2:1+1+1: 共有三种划分方法. 给出一个正整数,问有多少种划分方法. 数据规模和约定 n< =100 输入 一个正整数 ...

  9. [蓝桥杯][算法提高][vip] 阮小二买彩票

    蓝桥杯 ADV-66 算法提高 阮小二买彩票 问题描述 在同学们的帮助下,阮小二是变的越来越懒了,连算账都不愿意自己亲自动手了,每天的工作就是坐在电脑前看自己的银行账户的钱是否有变多.可是一段时间观察 ...

最新文章

  1. 46亿一辆的戴森电动车,「卖」给英国首富了
  2. 4.2w Star的文件同步工具,比VIP网盘还好用!
  3. math python 向上取整_Python的数值基本运算和其它数学运算方法
  4. image转pixmap qt_Qt 编程指南10 QImage Mat QPixmap转换
  5. mysql数据库(10):数据 备份
  6. NEC协议——红外遥控的使用
  7. Target-Action回调模式
  8. spark-sql 方差和标准差
  9. 7.5图卷积编码器-解码器
  10. 扫描枪无限连服务器,无线扫描枪连接电脑的3个步骤
  11. Java通过选择城市来计算运费(基础程序)
  12. Vue + Echarts 正态分布图,在线计算标准差,生成正态分布曲线
  13. python contains 正则_Python 正则表达式
  14. 如何提升会员收入?从这道面试题谈谈框架思维。
  15. [BZOJ1975]HH去散步 图论+矩阵
  16. 重装系统后服务器不提示用户密码,明明没有设置密码,重装系统后开机要求输入帐号密码咋办?...
  17. linux下编译doppia,Grub错误总结解决方案(共十七条)
  18. 建议将com.alibaba:fastjson升级至1.2.83
  19. vue.js纪录片---kalrry
  20. 1M的宽带下载速度为什么不是1M

热门文章

  1. Phython—实训day5—爬虫相关知识
  2. cat查看tomcat日志 linux_linux怎么使用cat命令查看文件? linux中cat命令的使用方法
  3. python和php互动_PHP中常见的五种设计模式
  4. ViewPager+Fragment 组合的预加载和懒加载
  5. std::reserve和std::resize的区别
  6. Android开发之原生定位的方法(GPS,网络定位)
  7. java如何转成jar包,修改及反编译可运行Jar包实现过程详解
  8. java 删除某一个学生_java编写一个程序,实现功能(定义一个类学生表示学生1. 增加学生2显示 3. 修改 4. 删除5查找某...
  9. IOS 6 之后 Required background modes
  10. Systemd-CentOS7系统服务介绍与CentOS6服务对比