U4699 鸡蛋

    • 0通过
    • 37提交
  • 题目提供者飞翔
  • 标签
  • 难度尚无评定

提交

最新讨论

  • 暂时没有讨论

题目背景

调皮的kkk准备恶搞他的同学兼朋友——你!

题目描述

kkk准备从楼上扔鸡蛋下来砸在lzn身上,让lzn变成“鸡蛋王子”。但是如果鸡蛋没有破裂,辣么就没有什么好玩的了,所以kkk必须知道鸡蛋最少在哪一层楼上扔下来会摔破。

kkk为了实验事先买了K个鸡蛋(这些鸡蛋的硬度一样),并来到了一个N层高楼上。每次kkk可以拿着一个鸡蛋从t楼扔下去,并观察鸡蛋有没有摔破。如果鸡蛋在第t层楼没有摔破,那么在1..t-1层楼都不会摔破,而且不论在1..t层楼摔多少次鸡蛋都不会破。

lzn马上就要过来了,所以你需要帮kkk求出,她最少要做多少次实验。

输入输出格式

输入格式:

有多组数据,每组数据包含两个整数K和N

输出格式:

对于每组数据输出最少实验次数,如果实验63次还不能成功,输出TLE

输入输出样例

输入样例#1:

2 100
1 100
输出样例#1:

14
TLE

说明

1<=K<=100

1<=N<2^64

题解:

数据范围太大,二分就拜拜了。

只能用考虑dp or递推。

然后自己软腿就推出来了。

f[i][j]表示i个鸡蛋扔j次恰好是f[i][j]层随

转移f[i][j]=f[i][j-1]+f[i-1][j-1]+1;

解释:

f[i][j]=k表示当有i个鸡蛋时扔j次,若楼层数<=k则可确定唯一楼层!
那代码中f[a][b]=f[a][b-1]+f[a-1][b-1]+1;表示什么?
若从某一层扔鸡蛋没碎,剩下了b-1次抛投机会;
若从该层扔下去碎了,不但少了一个鸡蛋,还少了一次抛投机会。
由于从第i层扔鸡蛋,没碎则鸡蛋硬度>=i,碎了则硬度<i,所以以上两种情况判断的楼层区间不会重叠。
但是别忘了扔鸡蛋的那一层……
所以状态转移方程为f[a][b]=f[a][b-1]+f[a-1][b-1]+1。

AC代码:

#include<iostream>
#include<cstdio>
using namespace std;
long long f[][];
long long k,n;
int main(){
for(int a=;a<=;a++)
for(int b=;b<=;b++)
f[a][b]=f[a][b-]+f[a-][b-]+;
while(cin>>k>>n){
bool flag=;
for(int a=;a<=;a++) if(f[k][a]>=n){
flag=;
printf("%d\n",a);
break;
}
if(!flag) printf("TLE\n");
}
return ;
}

U4699 鸡蛋的更多相关文章

  1. Java开发中经典的小实例-( 鸡蛋0.1元一个,鸭蛋3元一个,鹅蛋6元一个。求一百元买一百个蛋。)

    public class Test24 {    public static void main(String[] args) {        // 鸡蛋0.1元一个,鸭蛋3元一个,鹅蛋6元一个.求 ...

  2. [CareerCup] 6.5 Drop Eggs 扔鸡蛋问题

    6.5 There is a building of 100 floors. If an egg drops from the Nth floor or above, it will break. I ...

  3. OpenJudge 7627 鸡蛋的硬度

    描述 最近XX公司举办了一个奇怪的比赛:鸡蛋硬度之王争霸赛.参赛者是来自世 界各地的母鸡,比赛的内容是看谁下的蛋最硬,更奇怪的是XX公司并不使用什么精密仪器来测量蛋的硬度,他们采用了一种最老土的办法- ...

  4. noi 7627 鸡蛋的硬度

    题目链接:http://noi.openjudge.cn/ch0206/7627/ 题目讲的二分其实是一个误导, d(i,j),表示当前最优策略时,最坏的情况下: 有 J 个鸡蛋,I 个可以怀疑的楼层 ...

  5. poj 3783 Balls 动态规划 100层楼投鸡蛋问题

    作者:jostree 转载请注明出处 http://www.cnblogs.com/jostree/p/4098409.html 题目链接:poj 3783 Balls 动态规划 100层楼投鸡蛋问题 ...

  6. COJN 0585 800604鸡蛋的硬度

    800604鸡蛋的硬度 难度级别:B: 运行时间限制:1000ms: 运行空间限制:51200KB: 代码长度限制:2000000B 试题描述 最近XX公司举办了一个奇怪的比赛:鸡蛋硬度之王争霸赛.参 ...

  7. 基于visual Studio2013解决面试题之1007鸡蛋和篮子

     题目

  8. 扔鸡蛋问题具体解释(Egg Dropping Puzzle)

    经典的动态规划问题,题设是这种: 假设你有2颗鸡蛋,和一栋36层高的楼,如今你想知道在哪一层楼之下,鸡蛋不会被摔碎,应该怎样用最少的測试次数对于不论什么答案楼层都可以使问题得到解决. 假设你从某一层楼 ...

  9. 扔鸡蛋问题详解(Egg Dropping Puzzle)

    http://blog.csdn.net/joylnwang/article/details/6769160 经典的动态规划问题,题设是这样的:如果你有2颗鸡蛋,和一栋36层高的楼,现在你想知道在哪一 ...

随机推荐

  1. Spring框架之控制反转和依赖注入

    学Spring框架必须理解控制反转和依赖注入.下面各自举一个例子,来说明控制反转和依赖注入. IOC(控制反转):应用本身创建和维护的依赖对象:现在交由外部容器(Spring)来创建和维护:这个控制权 ...

  2. java web 学习笔记 - Java Bean

    1. Java Bean 是一个简单的 java 类,一般放在WEB-INF下的 classes目录下(如果没有则需要手工新建) 一个简单的Bean包括属性,getter ,setter方法,如果没有 ...

  3. ubuntu+ngnix+thinkphp pathinfo配置

    一.thinkphp 项目改为pathinfo模式 XXX/ThinkPHP/Conf/convention.php文件中找到 'URL_MODEL' => 1, // URL访问模式,可选参数 ...

  4. day16-常用模块I(time、datetime、random、os、sys、json、pickle)

    目录 time模块 datetime模块 random模块 os模块 sys模块 json模块与pickle模块 json pickle time模块 time模块一般用于不同时间格式的转换,在使用前 ...

  5. jquery 五星评价(图片实现)

    1111 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <ti ...

  6. 如何在MONO 3D寻找最短路路径

    前段时间有个客户说他们想在我们的3D的机房中找从A点到B点的最短路径,然而在2D中确实有很多成熟的寻路算法,其中A*是最为常见的,而这个Demo也是用的A*算法,以下计算的是从左上角到右下角的最短路径 ...

  7. TestNG超时测试

    用@Test(timeOut = XXX) 指定超时时间,单位是毫秒 package com.janson; import org.testng.annotations.Test; public cl ...

  8. linux cmp-比较两个文件是否有差异

    推荐:更多Linux 文件查找和比较 命令关注:linux命令大全 cmp命令用来比较两个文件是否有差异.当相互比较的两个文件完全一样时,则该指令不会显示任何信息.若发现有差异,预设会标示出第一个不通 ...

  9. HDU - 6158 The Designer

    传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6158 本题是一个计算几何题——四圆相切. 平面上的一对内切圆,半径分别为R和r.现在这一对内切圆之间,按 ...

  10. [bzoj4027][HEOI2015][兔子与樱花] (树形dp思想+玄学贪心)

    Description 很久很久之前,森林里住着一群兔子.有一天,兔子们突然决定要去看樱花.兔子们所在森林里的樱花树很特殊.樱花树由n个树枝分叉点组成,编号从0到n-1,这n个分叉点由n-1个树枝连接 ...