有1000个桶,有且仅有一个桶里面装了毒药,其他的都装了水。这些桶从外面看上去完全相同。如果一只猪喝了毒药,它将在15分钟内死去。在一个小时内,至少需要多少只猪才能判断出哪一个桶里装的是毒药呢?

思考回答这个问题,随后请设计实现一个算法去处理更一般的情况。

样例1:输入: buckets = 1000; minutesToDie = 15; minutesToTest = 60
输出: 5
挑战
假如一共有 n 个桶,只有一个桶装了毒药。一只猪将在喝完毒药 m 分钟后死去。你需要多少只猪才能在 p 分钟内找出那个装毒药的桶呢?

思路:
假设5桶酒,时间为题目所设,只要一头猪就可以完成测试,第一轮第一桶酒,第二轮第二桶…若猪幸存,则第五桶酒为毒酒,故minutestotest/minutesrodie+1为可以测试的次数,因最后一次无需测试。

假设有25桶酒
00 01 02 03 04
10 11 12 13 14
20 21 22 23 24
30 31 32 33 34
40 41 42 43 44
需要两头猪,
第一轮:一头猪第一行,另一头第一列,如果都毒死,则是在交叉点,否则剩下四桶酒可能是毒酒,剩余时间刚好测试四轮,一头猪可以测完。
第二轮:一头猪第二行,另一头第二列,同样道理,如果一头猪死亡,则剩下三桶酒未测试,而测试时间也为3次。后面以此类推。

所以需要猪数为测试的时间数的n次方不小于酒桶数,此时的n即为所需要的猪的数量。

class Solution {
public:/*** @param buckets: an integer* @param minutesToDie: an integer* @param minutesToTest: an integer* @return: how many pigs you need to figure out the "poison" bucket within p minutes */int poorPigs(int buckets, int minutesToDie, int minutesToTest) {// Write your code hereint num=minutesToTest/minutesToDie+1;if(buckets==1) return 0;int pig=1;while(pow(num,pig)<buckets)pig++;return pig;}
};

lintcode 1228. 可怜的猪 思考题相关推荐

  1. LintCode 1228. 可怜的猪 JavaScript算法

    描述 有1000个桶,有且仅有一个桶里面装了毒药,其他的都装了水.这些桶从外面看上去完全相同.如果一只猪喝了毒药,它将在15分钟内死去.在一个小时内,至少需要多少只猪才能判断出哪一个桶里装的是毒药呢? ...

  2. 钉钉被小学生逼疯,拍片在线求饶哈哈哈哈

    这已经是钉钉一星事件的第三次转折了. 哈哈哈哈哈哈哈哈哈哈为什么哈哈哈哈哈 或或或或或或或或或或或哈哈哈哈哈哈哈 哈哈哈为什么哈哈哈真的一次比一次好笑 我要是钉钉我真的欲哭无泪,谁能想到我一个这么强大 ...

  3. 最新进展:钉钉被小学生逼疯,拍片在线求饶哈哈哈哈

    这已经是钉钉一星事件的第三次转折了. 哈哈哈哈哈哈哈哈哈哈为什么哈哈哈哈哈 或或或或或或或或或或或哈哈哈哈哈哈哈 哈哈哈为什么哈哈哈真的一次比一次好笑 狂人要是钉钉狂人真的欲哭无泪,谁能想到狂人一个这 ...

  4. 以太网包的格式 --转

    http://blog.chinaunix.net/uid-20530497-id-2878069.html --原出处  Chinaunix首页 | 论坛 | 博客  登录 | 注册 博文    博 ...

  5. 哈哈哈哈…钉钉跪服了!被小学生逼得低下了头,拍片在线叫爸爸!

    点击上方"涛哥聊Python",选择"星标"公众号 重磅干货,第一时间送达 来源:SocialMarketing 编辑:小土方 前两天(2月17日) 本是上海中 ...

  6. dnsmasq整理资料

    openwrt中的dnsmasq包含有dhcp server和dns的功能,dnsmasq是动态启动的,当网络状态发送变化是会重新启动dnsmasq,启动脚本为/etc/hotpulg.d/iface ...

  7. 力扣题458:可怜的小猪

    力扣题458:可怜的小猪 有 buckets 桶液体,其中 正好 有一桶含有毒药,其余装的都是水.它们从外观看起来都一样.为了弄清楚哪只水桶含有毒药,你可以喂一些猪喝,通过观察猪是否会死进行判断.不幸 ...

  8. 458. 可怜的小猪

    458. 可怜的小猪 有 buckets 桶液体,其中 正好 有一桶含有毒药,其余装的都是水.它们从外观看起来都一样.为了弄清楚哪只水桶含有毒药,你可以喂一些猪喝,通过观察猪是否会死进行判断.不幸的是 ...

  9. 跨越-丢掉你躯体内可怜的想法

    人生最大的敌人可能并不是让你睡不着睡的对手,而是你以为正完全掌控着的你自己.这是一本心理学专家推荐的自我突破性格修炼的心理学类书籍,愿它带着你早日实现心灵的"跨越". 丢掉你躯体内 ...

最新文章

  1. 一文读懂对抗机器学习Universal adversarial perturbations | CSDN博文精选
  2. Servlet3.0 Test
  3. linux不保存退出命令_面试提问说出16个linux命令,能凑齐不!高频22个Linux命令在这里...
  4. android+动画队列,Android属性动画详解
  5. BZOJ #3625 CF #438E 小朋友和二叉树
  6. 技术管理角色认知-管理都需要做哪些事
  7. GPU并行计算OpenCL(1)——helloworld
  8. 什么是Android上的“上下文”?
  9. modelsim安装_Modelsim10.5安装教程
  10. Windows系统快速查找文件
  11. R语言--Cox模型校准曲线原理(一)数据来源
  12. 英语题目作业——OJ_2392:Clear Cold Water
  13. 什么是裸金属云服务器,适用于哪些场景,又有哪些优势?
  14. 等额本息与等额本金,从财务管理的角度充分考虑货币时间价值,哪个对于购房人来说更划算?
  15. ## 三天打鱼两天晒网问题
  16. 计算机解决问题时有什么特点,问题解决
  17. AI贺新年,开发者的虎年这样过才有意思
  18. 计算两幅图像的PSNR和SSIM以及python代码实现
  19. gnuplot下载安装使用
  20. 闲鱼疯转 6800 份!大厂内部数据分析资料首公开!

热门文章

  1. 微搭低代码实现二维码显示及上传功能
  2. 图像分割的tf-serving
  3. 慢雾科技:2020年Staking、DeFi 将出现更多不同形态的产品 | FBEC 2019专访
  4. Linux网络服务(一)
  5. SpringBoot Rabbitmq3.9 DLX方式实现延迟队列
  6. java mp4_java返回mp4
  7. 2021-2027全球与中国磷酸铁锂电池(LFP)市场现状及未来发展趋势
  8. 2023年最新清理软件CleanMyMac X测评:效果/功能/价格/优惠/搭配方案与替代方案
  9. 我们不做看客,只做时代的赋能者 —FMI2018人工智能与大数据高峰论坛深圳场圆满落幕...
  10. 探索挖掘数据的洪荒之力