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

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

首先,我们直接从上往下dfs。

代码如下:

#include <iostream>
using namespace std;
const int N = 110;
int mp[N][N];
int dp[N][N];
int n;int dfs(int x, int y) {if (x == n)return mp[x][y];return dp[x][y] = max(dfs(x + 1, y), dfs(x + 1, y + 1)) + mp[x][y];
}int main() {cin >> n;for (int i = 1; i <= n; i++)for (int j = 1; j <= i; j++)cin >> mp[i][j];dfs(1, 1);cout << dp[1][1] << endl;return 0;
}

可以看到超时,而且时间是2358

现在我们记忆化搜索。

代码如下:

#include <iostream>
#include <cstring>
using namespace std;
const int N = 110;
int mp[N][N];
int dp[N][N];
int n;int dfs(int x, int y) {if (x == n)return mp[x][y];if (dp[x][y] >= 0)//实现记忆化搜索return dp[x][y];return dp[x][y] = max(dfs(x + 1, y), dfs(x + 1, y + 1)) + mp[x][y];
}int main() {cin >> n;for (int i = 1; i <= n; i++)for (int j = 1; j <= i; j++)cin >> mp[i][j];memset(dp, -1, sizeof(dp));dfs(1, 1);cout << dp[1][1] << endl;return 0;
}

时间变成了1。

用dp的话,时间为2,比记忆化搜索慢一点。

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

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

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

    题目描述 在一座山上,有很多很多珠宝,它们散落在山底通往山顶的每条道路上,不同道路上的珠宝的数目也各不相同.下图为一张藏宝地图: 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. [蓝桥杯][算法提高VIP]金陵十三钗(状压dp记忆化搜索)

    题目描述 在电影<金陵十三钗>中有十二个秦淮河的女人要自我牺牲代替十二个女学生去赴日本人的死亡宴会.为了不让日本人发现,自然需要一番乔装打扮.但由于天生材质的原因,每个人和每个人之间的相似 ...

  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. 编译工具 之 ant
  2. 实验6 在应用程序中播放音频和视频
  3. linux GDB详解
  4. Android 网络交互之MD5为什么要加盐
  5. java 设置两个方法互斥_分享两个操作Java枚举的实用方法
  6. java台球游戏设计原理_Java实现简单台球游戏
  7. idea解决activiti(*.bpmn)文件乱码问题。
  8. 这个网站不错,根据引用jar包路径查找原JAR包
  9. url参数拼接 php,PHP解析url并得到url参数方法总结
  10. react替换元素节点_React万字长文面试题梳理
  11. C语言程序——小数的四舍五入
  12. word文档的尺寸和字号对照表
  13. 【微信测试号实战——02】编写你独有的微信消息模板
  14. Mysql自增主键用完了怎么办
  15. 怎么设计制作简洁实用的App交互界面
  16. WordPress增加网站地图
  17. 关于 range.autofilter 和 VBA的 filter
  18. 数学归纳法求证欧几里得算法
  19. openfire主要插件介绍
  20. Python基础知识:def创建函数

热门文章

  1. ArcGIS 10.6 Data Interoperability Tools的安装与使用(附安装包下载)
  2. C和指针之字符串实现strrstr函数
  3. Android之电源管理 PowerManager解决远程拍照手机黑屏问题
  4. Android之事件总线EventBus详解
  5. Struts2的ResultType和Action处理链
  6. pythonrequests说明_解决Python requests 报错方法集锦
  7. 微软官方pe工具_微软官方下载工具
  8. qt qss设置字体大小_Qt编写自定义控件70-扁平化flatui
  9. python下载matplotlib.finance模块_关于Matplotlib中No module named 'matplotlib.finance'的解决办法...
  10. python 柱状图 间距_专题第18篇:Python 绘图入门