当前位置:网站首页>第一讲:鸡蛋的硬度
第一讲:鸡蛋的硬度
2022-07-07 06:51:00 【奋斗吧!骚年!】
题目:AcWing 1048. 鸡蛋的硬度
最近XX公司举办了一个奇怪的比赛:鸡蛋硬度之王争霸赛。
参赛者是来自世界各地的母鸡,比赛的内容是看谁下的蛋最硬,更奇怪的是XX公司并不使用什么精密仪器来测量蛋的硬度,他们采用了一种最老土的办法–从高度扔鸡蛋–来测试鸡蛋的硬度,如果一次母鸡下的蛋从高楼的第a层摔下来没摔破,但是从a+1层摔下来时摔破了,那么就说这只母鸡的鸡蛋的硬度是a。
你当然可以找出各种理由说明这种方法不科学,比如同一只母鸡下的蛋硬度可能不一样等等,但是这不影响XX公司的争霸赛,因为他们只是为了吸引大家的眼球,一个个鸡蛋从100 层的高楼上掉下来的时候,这情景还是能吸引很多人驻足观看的,当然,XX公司也绝不会忘记在高楼上挂一条幅,写上“XX公司”的字样–这比赛不过是XX公司的一个另类广告而已。
勤于思考的小A总是能从一件事情中发现一个数学问题,这件事也不例外。
“假如有很多同样硬度的鸡蛋,那么我可以用二分的办法用最少的次数测出鸡蛋的硬度”,小A对自己的这个结论感到很满意,不过很快麻烦来了,“但是,假如我的鸡蛋不够用呢,比如我只有1个鸡蛋,那么我就不得不从第1层楼开始一层一层的扔,最坏情况下我要扔100次。如果有2个鸡蛋,那么就从2层楼开始的地方扔……等等,不对,好像应该从1/3的地方开始扔才对,嗯,好像也不一定啊……3个鸡蛋怎么办,4个,5个,更多呢……”,和往常一样,小A又陷入了一个思维僵局,与其说他是勤于思考,不如说他是喜欢自找麻烦。
好吧,既然麻烦来了,就得有人去解决,小A的麻烦就靠你来解决了。
输入格式
输入包括多组数据,每组数据一行,包含两个正整数 n 和 m,其中 n 表示楼的高度,m 表示你现在拥有的鸡蛋个数,这些鸡蛋硬度相同(即它们从同样高的地方掉下来要么都摔碎要么都不碎),并且小于等于 n。
你可以假定硬度为 x 的鸡蛋从高度小于等于 x 的地方摔无论如何都不会碎(没摔碎的鸡蛋可以继续使用),而只要从比 x 高的地方扔必然会碎。
对每组输入数据,你可以假定鸡蛋的硬度在 0 至 n 之间,即在 n+1 层扔鸡蛋一定会碎。
输出格式
对于每一组输入,输出一个整数,表示使用最优策略在最坏情况下所需要的扔鸡蛋次数。
数据范围
1≤n≤100,
1≤m≤10
输入样例:
100 1
100 2
输出样例:
100
14
样例解释
最优策略指在最坏情况下所需要的扔鸡蛋次数最少的策略。
如果只有一个鸡蛋,你只能从第一层开始扔,在最坏的情况下,鸡蛋的硬度是100,所以需要扔100次。如果采用其他策略,你可能无法测出鸡蛋的硬度(比如你第一次在第二层的地方扔,结果碎了,这时你不能确定硬度是0还是1),即在最坏情况下你需要扔无限次,所以第一组数据的答案是100。
题目分析:
因为这道题比较复杂所以待续。。。
这里解释一下100层楼,2个鸡蛋只需要14次是怎么来的
我们可以根据答案14推断
如果我们第一次站在14楼,如果碎了那么我们还需判断1~13楼共13次,所以总共加上第一个鸡蛋1+13=14次;
如果我们第二次站在14+13楼,如果碎了那么我们还需判断15~26共12次,所以加上第一次和第二次共1+1+12=14次。
以此类推我们可以知道肯定能到达100层。
边栏推荐
- 网易云微信小程序
- 牛客网——华为题库(61~70)
- Detailed learning notes of JVM memory structure (I)
- shake数据库中怎么使用Mongo-shake实现MongoDB的双向同步啊?
- Where is the answer? action config/Interceptor/class/servlet
- LeetCode每日一题(2316. Count Unreachable Pairs of Nodes in an Undirected Graph)
- 数据建模中利用3σ剔除异常值进行数据清洗
- Difference between interface iterator and iteratable
- Pytest+request+allure+excel interface automatic construction from 0 to 1 [five nails / flying Book notice]
- DRF defines views and routes
猜你喜欢
VSCode+mingw64
Zen - batch import test cases
Unity shader (to achieve a simple material effect with adjustable color attributes only)
Storage of data in memory
Postman interface test (I. installation and use)
Locust performance test 3 (high concurrency, parameter correlation, assembly point)
软件建模与分析
Skill review of test engineer before interview
JVM garbage collection detailed learning notes (II)
Jenkins+ant+jmeter use
随机推荐
STM32 and motor development (from stand-alone version to Networking)
The configuration and options of save actions are explained in detail, and you won't be confused after reading it
DRF authentication, permissions, and flow restrictions (only for views in DRF)
Unity shader (pass user data to shader)
Error: selenium common. exceptions. WebDriverException: Messag‘geckodriver‘ execute
正则匹配以XXX开头的,XXX结束的
Using JWT to realize login function
Leetcode daily questions (2316. count unreachable pairs of nodes in an undirected graph)
Some pit avoidance guidelines for using Huawei ECS
(3/8)枚举的不当用法 之 方法参数(二)
Test Engineer Interview Questions 2022
ComputeShader
Huawei hcip datacom core_ 03day
Unity uses mesh to realize real-time point cloud (II)
MySql数据库-事务-学习笔记
网易云微信小程序
Locust performance test 3 (high concurrency, parameter correlation, assembly point)
Unity shader (learn more about vertex fragment shaders)
创建一个长度为6的int型数组,要求数组元素的值都在1-30之间,且是随机赋值。同时,要求元素的值各不相同。
MySql数据库-索引-学习笔记