记忆化搜索(DFS+DP) URAL 1223 Chernobyl’ Eagle on a Roof
题目传送门
1 /* 2 记忆化搜索(DFS+DP):dp[x][y] 表示x个蛋,在y楼扔后所需要的实验次数 3 ans = min (ans, max (dp[x][y-i], dp[x-1][i-1]) + 1);前者表示蛋没碎,则往高处(y-i)搜索 4 后者表示蛋碎了,往低处(i-1)方向搜索 5 这样写不好,每次memset (dp)就会超时:( 6 详细解释:http://blog.csdn.net/fulongxu/article/details/27110435 7 */ 8 #include <cstdio> 9 #include <iostream> 10 #include <algorithm> 11 #include <cstring> 12 #include <cmath> 13 using namespace std; 14 15 const int MAXN = 1e3 + 10; 16 const int INF = 0x3f3f3f3f; 17 int dp[11][MAXN]; 18 19 int DFS(int x, int y) 20 { 21 if (dp[x][y]) return dp[x][y]; 22 if (x == 1) {dp[x][y] = y; return y;} 23 if (y <= 2) {dp[x][y] = y; return y;} 24 25 int ans = INF; 26 for (int i=2; i<y; ++i) 27 { 28 int tmp = max (DFS (x, y-i) + 1, DFS (x-1, i-1) + 1); 29 ans = min (ans, tmp); 30 } 31 32 return dp[x][y] = ans; 33 } 34 35 int main(void) //URAL 1223 Chernobyl’ Eagle on a Roof 36 { 37 //freopen ("Z.in", "r", stdin); 38 39 int n, m; 40 while (scanf ("%d%d", &n, &m) == 2) 41 { 42 if (!n && !m) break; 43 if (n > 10) n = 10; 44 45 printf ("%d\n", DFS (n, m)); 46 } 47 48 return 0; 49 }
转载于:https://www.cnblogs.com/Running-Time/p/4497677.html
记忆化搜索(DFS+DP) URAL 1223 Chernobyl’ Eagle on a Roof相关推荐
- BZOJ1415[Noi2005]聪聪和可可——记忆化搜索+期望dp
题目描述 输入 数据的第1行为两个整数N和E,以空格分隔,分别表示森林中的景点数和连接相邻景点的路的条数. 第2行包含两个整数C和M,以空格分隔,分别表示初始时聪聪和可可所在的景点的编号. 接下来E行 ...
- POJ 2111 Millenium Leapcow(记忆化搜索+dfs记录路径)
题目链接 思路 对N*N网格中所有点进行搜索(dfs),搜索过程中对每一步进行记忆化存储,即dp数组保存从当前点开始可获得的最高得分,若后面需要用到前面计算过的数据,直接读取dp数组即可. dp[i] ...
- 【POJ - 1661】Help Jimmy(记忆化搜索,dp)
题干: Help Jimmy" 是在下图所示的场景上完成的游戏. 场景中包括多个长度和高度各不相同的平台.地面是最低的平台,高度为零,长度无限. Jimmy老鼠在时刻0从高于所有平台的某处开 ...
- jzoj6451-[2020.01.19NOIP提高组]不幸运数字【记忆化搜索,数位dp,高精度】
正题 题目链接:https://jzoj.net/senior/#main/show/6451 题目大意 给出a,ba,ba,b,求[a,b][a,b][a,b]这个区间中有多少数字包含444. 解题 ...
- 1223. Chernobyl’ Eagle on a Roof(dp)poj3783
经典DP n个鹰蛋 m层楼 刚开始是二分想法 不过当数小于二分的那个值 貌似没发判断 dp[i][j] = min(dp[i][j],max(dp[i-1][k-1],dp[i][j-k]) 选择第k ...
- 【DP】【记忆化搜索】NIKOLA(jzoj 1150)
NIKOLA 题目大意: NIKOLA画了一排数字,他一开始在1,他可以往前跳T+1格(T为上一次跳到此格跳的格数),或往后T格(T一开始为0),但不能跳出界,没跳到一个格子,就要加上此格子的值(一开 ...
- UVA 1220 Party at Hali-Bula (树状DP+记忆化搜索)
Dear Contestant, I'm going to have a party at my villa at Hali-Bula to celebrate my retirement from ...
- 棋盘分割(记忆化搜索)
棋盘分割 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- [蓝桥杯][2014年第五届真题]地宫取宝(记忆化搜索)
题目描述 X 国王有一个地宫宝库.是 n x m 个格子的矩阵.每个格子放一件宝贝.每个宝贝贴着价值标签. 地宫的入口在左上角,出口在右下角. 小明被带到地宫的入口,国王要求他只能向右或向下行走. 走 ...
最新文章
- ASP.NET Core 2 学习笔记(七)路由
- JavaScript如何诞生
- python函数编程-偏函数partial function
- Android app内语言环境切换
- 【Castell】安全联锁提升UPS设备维护管理水平
- Hdu 3062. Party
- epoll机制:epoll_create、epoll_ctl、epoll_wait、close
- python输出结果空格分割_用Python编写固定宽度,以空格分隔的CSV输出
- 【原创】技术人员如何去面试?
- BZOJ3784树上的路径
- js继承实现 狗类继承动物类
- Reporting Services 4: Web Service
- [PKUSC2018游记]
- 安装好jdk后在cmd窗口输入Java 出现Error: could not open `D:\java2\lib\amd64\jvm.cfg'
- 控制系统分析与设计(一):控制系统分类及建模
- CISP-PTE考试介绍
- CG-62 压电式雨量传感器 工作原理 使用安装环境 高精度
- 常用笔记啊(持续更新)
- 敬业签:备忘录在手机哪里能找到?
- 人工智能内行盛会,错过再等一年!