#include <iostream>
using namespace std;#define N 500
#define max(a,b) (a>b?a:b)
#define min(a,b) (a<b?a:b)int dp[2][N]; /* dp[i][j] 表示用i个鸡蛋测试第 j 层楼所需要的最小步数 */void count ( int n )
{int i, j;
/* dp[1][i] = i 已经是最优解,是准确值。而dp[2][i] = i只是用最差解预处理 */for ( i = 0; i <= n; i++ ) dp[1][i] = dp[2][i] = i;/* 对于每个楼层i,可以从[1,i-1]层中任选一层抛j第一个鸡蛋:鸡蛋可能破了,那么必须挨个尝试[1,j-1],即dp[1][j-1],鸡蛋可能没破,那么处理[j+1,i],即dp[2][i-j]。每次抛都考虑最坏情况,即max(dp[1][j-1],dp[2][i-j])。枚举所有[1,i-1]的楼层,取最优解 */for ( i = 1; i <= n; i++ )for ( j = 1; j < i; j++ )dp[2][i] = min ( dp[2][i], 1 + max(dp[1][j-1], dp[2][i-j]) );
}int main()
{count(200);int n;while ( scanf("%d",&n) != EOF ){for ( int i = 1; i <= n; i++ )printf("%d %d\n",i,dp[2][i]);}return 0;
}

两个鸡蛋100层楼(DP)相关推荐

  1. 2个鸡蛋100层楼/2个玻璃珠39层楼

    题目描述: 你拿着两个鸡蛋站在100层的大楼上.鸡蛋或许结实到从楼定掉下也不会摔碎,或许很易碎.最少试验多少次可以找出鸡蛋被摔碎的最低楼层? 腾讯2017笔试题也有类似的题目,描述是针对2个玻璃珠和3 ...

  2. 你还在用二分法求2个鸡蛋100层楼的问题吗?

    题目 2个鸡蛋,100层楼,如何用最少的试验次数得到在鸡蛋落下不碎的最高层数?这一据说曾被谷歌纳入校园招聘题库的经典面试题,想必许多人都曾遇到过,又有多少人与我一样,不加思索就直接回答用二分法查找的? ...

  3. 2个鸡蛋100层楼--动态规划

    原题:两个软硬程度一样但未知的鸡蛋,它们有可能都在一楼就摔碎,也可能从一百层楼摔下来没事.有座100层的建筑,要你用这两个鸡蛋确定哪一层是鸡蛋可以安全落下的最高位置.可以摔碎两个鸡蛋.在最坏的情况下最 ...

  4. 面试题目:2个鸡蛋100层楼问题

    一道非常经典的面试题目,给你两个鸡蛋,在一幢100层的大楼里面,至少扔几次可以测出让鸡蛋破碎的临界高度? 最朴素的做法是从100层一直扔到1层,不过这样明显不是最优的.这题目其实可以转化为dp求解,假 ...

  5. 两个软硬程度一样的鸡蛋,它们在某一层摔下会碎,有个100层的建筑,要求最多用两个鸡蛋确 定鸡蛋安全下落的临界位置,给出临界位置?如果是n层楼,m个鸡蛋,请给出确定临界位置的算法

    题目:问题:一幢大楼共计100层,某种类型的鸡蛋从某一楼层及其以上楼层摔下来时会被打破,从该层楼(即临界楼层)以下楼层摔下该鸡蛋,鸡蛋不会出现破损.现给你2个完全一样的该种类型的鸡蛋,问:如何通过这2 ...

  6. 关于100层楼,扔两个鸡蛋,求摔碎鸡蛋的临界层的问题

    题目描述: 两个软硬程度一样但未知的鸡蛋,它们有可能都在一楼就摔碎,也可能从一百层楼摔下来没事.有座100层的建筑,要你用这两个鸡蛋确定哪一层是鸡蛋可以安全落下的最高位置.可以摔碎两个鸡蛋. 网上有人 ...

  7. C语言丢鸡蛋100层,关于100层楼,扔两个鸡蛋,求摔碎鸡蛋的临界层的问题

    题目描述: 两个软硬程度一样但未知的鸡蛋,它们有可能都在一楼就摔碎,也可能从一百层楼摔下来没事.有座100层的建筑,要你用这两个鸡蛋确定哪一层是鸡蛋可以安全落下的最高位置.可以摔碎两个鸡蛋. 网上有人 ...

  8. 两个鸡蛋测试:从100层楼往下扔鸡蛋,求最坏情况下确认保证鸡蛋可以不破的最大楼层所需次数

    最坏情况下求得最优解所需的次数 内容说明 本文是在看过<<妙解谷歌压箱底面试题:如何正确的从楼上抛鸡蛋>>一文以后做的总结,该文章对此问题描写的很详细,但是在拜读的过程中也花了 ...

  9. 2个鸡蛋,100层楼问题;

    题目: 现有两个硬度相同的鸡蛋,以及一栋100层的楼,如果鸡蛋在第n层楼摔下去不会碎,在n-1层楼摔下去会碎,那么鸡蛋的硬度是n,如果要测出鸡蛋的硬度n,在最坏情况下最少要测试几次?每测试一次就把一个 ...

最新文章

  1. poj 1185(状压dp)
  2. 近期活动盘点:智进未来:AI在医疗健康领域的应用、挑战及发展趋势
  3. dropout层_深度学习两大基础Tricks:Dropout和BN详解
  4. Selenium Web 自动化 - 项目实战(三)
  5. 未來用工新趨勢_浅谈2019年灵活用工五大新趋势
  6. mysql 创建表_每天10分钟带你学会MySQL(三)表的创建
  7. 没项目经验难就业?推荐你参加“大学生就业特训营” | 100 个免费名额,先到先得!...
  8. 23. Navigator javaEnabled() 方法
  9. MacOS Monterey 12.3 (21E30) OC 0.7.9 / Cl 5145 / PE 三分区原版黑苹果镜像
  10. 酒店预定系统—需求规格说明书
  11. 怎么用php跨域请求
  12. uniapp 微信小程序的弹框文字换行
  13. 实用分享-MAC修改器(摆脱网络封锁的困扰)
  14. android笑脸切图,朋友圈小符号表情怎么弄?朋友圈文案小符号表情大全
  15. 100 句世界哲学语录【句句珠玑细细品味】
  16. CI框架使用PHPExcel生成快递面单
  17. 关于u8的三种备份方式
  18. thymeleaf模板获取markdown数据后,渲染到页面上(showdown.js)
  19. 人工智能基础之美女和野人过河问题
  20. 证伪主义 | A Little Sight of Falsification

热门文章

  1. 强化学习七日打卡营终极复现之flappy bird
  2. springbooot使用google验证码
  3. sam卡和sim卡区别_关于PSAM卡、SAM卡、SIM卡的特征和区别
  4. k叉树的性质_相关树及性质
  5. 5分钟教你制作独一无二的卡通头像,新手做自媒体,不敢真人露脸
  6. #2016京东实习生笔试之生日礼物
  7. win7 ie11 uninstall卸载
  8. 什么是DDOS攻击?怎么抵抗DDOS攻击?
  9. 树洞程序php,Anonymous v20200926 – 秘密 PHP树洞程序
  10. 外挂、私服为何你们这么猖獗?