openjudge7627 鸡蛋的硬度

2023-11-07 21:48
文章标签 鸡蛋 openjudge7627 硬度

本文主要是介绍openjudge7627 鸡蛋的硬度,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

描述

最近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(1<=n<=100,1<=m<=10),其中n表示楼的高度,m表示你现在拥有的鸡蛋个数,这些鸡蛋硬度相同(即它们从同样高的地方掉下来要么都摔碎要么都不碎),并且小于等于n。你可以假定硬度为x的鸡蛋从高度小于等于x的地方摔无论如何都不会碎(没摔碎的鸡蛋可以继续使用),而只要从比x高的地方扔必然会碎。
对每组输入数据,你可以假定鸡蛋的硬度在0至n之间,即在n+1层扔鸡蛋一定会碎。
输出

对于每一组输入,输出一个整数,表示使用最优策略在最坏情况下所需要的扔鸡蛋次数。





动态规划,f[i][j]表示有i个鸡蛋,可以确定j层楼中临界位置的尝试次数。

则一定是在尝试某一层楼之后,分摔碎和没摔碎两种情况,需考虑最坏情况,取最大值。

在枚举第一个尝试的楼层,得出答案后取最小值。





#include<cstdio>
#include<cstring>
int f[15][110];
int min(int x,int y)
{if (x<y) return x;return y;
}
int max(int x,int y)
{if (x>y) return x;return y;
}
int main()
{int m,n,i,j,k,p,q,x,y,z;memset(f,0x42,sizeof(f));for (i=1;i<=100;i++)f[1][i]=i;for (j=1;j<=10;j++)f[j][0]=0;for (i=2;i<=10;i++)for (j=1;j<=100;j++)for (k=1;k<=j;k++)f[i][j]=min(f[i][j],max(f[i-1][k-1],f[i][j-k])+1);while (scanf("%d%d",&n,&m)==2)printf("%d\n",f[m][n]);
}


这篇关于openjudge7627 鸡蛋的硬度的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/366470

相关文章

蓝桥杯 欧拉和鸡蛋

问题描述: 大数学家欧拉在集市上遇到了本村的两个农妇,每人跨着个空篮子。她们和欧拉打招呼说两人刚刚卖完了所有的鸡蛋。 欧拉随便问:“卖了多少鸡蛋呢?” 不料一个说:“我们两人自己卖自己的,一共卖了150个鸡蛋,虽然我们卖的鸡蛋有多有少,但刚好得了同样的钱数。你猜猜看!” 欧拉猜不出。 另一个补充道:“如果我按她那样的价格卖,可以得到32元;如果她按我的价格卖,可以得到24.5元”。 欧

leetcode-鸡蛋掉落

categories: [计算机通识,数据结构与算法] thumbnail: /images/fe/leetcode.jpg toc: true 鸡蛋掉落(难度:困难) 你将获得 K 个鸡蛋,并可以使用一栋从 1 到 N 共有 N 层楼的建筑。 每个蛋的功能都是一样的,如果一个蛋碎了,你就不能再使用它,否则可以继续丢,鸡蛋的性能不会随着丢的次数增加而有所损耗。 假设存在一个中间楼层F,满足

扔鸡蛋问题-经典动态规划问题

题目 一幢 100 层的大楼,给你2个鸡蛋,如果在第 n 层扔下鸡蛋,鸡蛋不碎,那么从第 n-1 层扔鸡蛋,都不碎。这两只鸡蛋一模一样,不碎的话可以扔无数次,且鸡蛋在0层不会碎。设计一种策略能保证可以测出鸡蛋恰好会碎的楼层,且如果该策略是最坏的情况所扔次数最少 一、概述 思维分析 首先我们需要确定最坏情况是什么样子的。 假设n是我们的决定第一次尝试的楼层,第一个鸡蛋从n层开始扔。 如果

20240620每日一题-测试瓶子的硬度

小明用2个玻璃瓶,在总高88层大楼测试瓶子硬度,拿1个瓶子从某层摔下去,瓶子没摔碎,到更高层去摔,如果碎了,拿另1瓶子到更低层摔 问测试出瓶子最大硬度最少摔几次? 分析 1只有1个瓶子 为了保证一定测出瓶子的硬度,只能一层一层测试,最多可能88次 2有足够的瓶子 则可以使用二分去测试,88层,最多7次 3 瓶子只有2个 如果用1个瓶子二分去测试,在44层摔,摔碎了,恰好瓶子硬度是43

牛客仓鼠的鸡蛋

分析一下判断语句 如果能放就输出位置 不能放就输出-1 不能放的条件是最大值小于要放的鸡蛋数量,线段树维护最大值 放的位置用线段树二分 每个篮子不能放超过k堆鸡蛋,记录一下每个篮子放的次数,次数等于k后给最大值附上0即可 // Problem: 仓鼠的鸡蛋// Contest: NowCoder// URL: https://ac.nowcoder.com/acm/contes

“未来视界”趣味实验室 | 鸡蛋的OCT无损检测与成像

未来视界 顷刻之间  友思特全新实验室专栏正式成立啦,欢迎踏入“未来视界趣味实验室”!在这里,我们将以独特的视角,带大家探索光电与机器视觉的奥秘。 想象一下,如何通过小小摄像头看透物体深处的故事?如何利用光线编织出数字世界的图案?我们将着手设计有趣的光学传感实验,解读像素间的密语,理解深度学习/3D检测/新型光电等技术在机器图像检测识别中的神奇力量。 每一次实验,都是理论与实践的碰撞,是科技

Maya: 菜单 编辑曲线 CV硬度

编辑曲线 >CV硬度 主要用来控制次数为3的曲线的CV控制点的多样性因数。

poj 3783 DP 2个鸡蛋扔100层楼的加强版

http://poj.org/problem?id=3783 估计23号之后的排位赛之后我就要退役了,这之前最后再做5天ACM 今天的排位很惨,上次排位也很惨......这道题原来算法课老师讲过,模模糊糊记得方程,但是边界处理有问题, dp[i][j]=min(1+max(dp[k-1][j-1],dp[i-k][j]))   k=1 to 楼数 dp[i][j]:i层楼扔,手里有j个bal

软胶囊硬度测试:品质与信任的守护者

软胶囊硬度测试:品质与信任的守护者 在当今药品市场,品质与安全是消费者最为关心的焦点。作为药品的一种常见剂型,软胶囊因其独特的优点而备受青睐。然而,如何确保软胶囊的品质与安全性,让消费者能够安心使用呢?答案就在于软胶囊硬度测试。今天,我们将为您揭秘软胶囊硬度测试的重要性,以及它是如何成为品质与信任的守护者的。 硬度测试:品质把控的关键环节 软胶囊硬度测试是药品生产过程中的一项重要环节,它

西奥CHT-01软胶囊硬度测试仪:重塑行业标杆,引领硬度测试新纪元

西奥CHT-01软胶囊硬度测试仪:重塑行业标杆,引领硬度测试新纪元 在当今医药领域,软胶囊作为一种广泛应用的药品剂型,其品质的稳定性和安全性直接关系到患者的健康。而在确保软胶囊品质的各项指标中,硬度测试尤为关键。西奥机电凭借其深厚的技术积累与创新能力,推出了CHT-01软胶囊硬度测试仪,这一颠覆性的产品不仅重塑了行业标杆,更引领了软胶囊硬度测试技术的新纪元。 一、技术革新,精准测量新高度