首先想一下特殊情况,如果只有一个气球,我们要确定高度只能从下往上一层一层地测试,因为如果气球一旦爆了,便无法测出气球的硬度。

如果气球有无数个,那么就可以用二分的方法来确定。

一般地,用d(i, j)表示用i个气球实验j次所能确定的楼层的最大高度。

我们假设第一个气球从第k层扔下,

  • 如果气球爆了,那么剩下的i-1个气球实验j-1次,要能在下面的k-1层确定气球的硬度。所以这个k最大取d(i-1, j-1)+1
  • 气球没爆,那么第1~k层就完全不用管了,i个气球剩下的j-1次测试就直接往上测试就行,最多能测试d(i, j-1)层

所以d(i, j) = d(i-1, j-1) + 1 + d(i, j-1)

 #include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std; typedef unsigned long long LL; const int maxn = + ;
const int maxm = ; LL a[maxn][maxm]; int n;
LL h; int main()
{
for(int i = ; i < maxn; i++)
for(int j = ; j < maxm; j++)
a[i][j] = a[i-][j-] + + a[i][j-]; while(cin >> n >> h && n)
{
int i;
for(i = ; i < maxm; i++) if(a[n][i] >= h) break;
if(i < maxm) printf("%d\n", i);
else puts("More than 63 trials needed.");
} return ;
}

代码君

UVa 10934 DP Dropping water balloons的更多相关文章

  1. 【Uva 10934】Dropping water balloons

    [Link]: [Description] 等价题意: 某人在1..n内选一个数x; 然后让你去猜; 你可以问他是不是在哪个范围里; 每次会告诉你YES或者NO; 问你在最坏的情况下猜出答案需要猜多少 ...

  2. UVa 10934 Dropping water balloons:dp(递推)

    题目链接:https://vjudge.net/problem/27377/origin 题意: 有一栋n层高的楼,并给你k个水球.在一定高度及以上将水球扔下,水球会摔破:在这个高度以下扔,水球不会摔 ...

  3. UVA - 10934 Dropping water balloons (dp,逆向思维)

    题目链接 题目大意:给你n个规格一样的气球和一栋大楼的高度,求最少试验几次能测出气球最高在哪一层掉下来不破. 如果这道题想用(dp[i][j]=用i个气球测出j高度的楼需要几次)来作为状态的话,那你就 ...

  4. UVA - 10934 Dropping water balloons(装满水的气球)(dp)

    题意:有k个气球,n层楼,求出至少需要多少次实验能确定气球的硬度.气球不会被实验所“磨损”. 分析: 1.dp[i][j]表示第i个气球,测试j次所能确定的最高楼层. 2.假设第i-1个气球测试j-1 ...

  5. uva 10934 Dropping water balloons(转载)

    本文转载自http://blog.csdn.net/shuangde800/article/details/11273123 题意 你有k个一模一样的水球,在一个n层楼的建筑物上进行测试,你想知道水球 ...

  6. uva 10934 Dropping water balloons

    你有k个一模一样的水球,在一个n层楼的建筑物上进行测试,你想知道水球最低从几层楼往下丢可以让水球破掉.由于你很懒,所以你想要丢最少次水球来测出水球刚好破掉的最低楼层.(在最糟情况下,水球在顶楼也不会破 ...

  7. 10934 - Dropping water balloons(DP)

    这道题的思路非常难想. 问你须要的最少实验次数,这是非常难求解的.并且我们知道的条件仅仅有三个.k.n.实验次数 . 所以我们最好还是改变思路,转而求最高所能确定的楼层数 .  那么用d[i][j]表 ...

  8. Dropping water balloons (入门dp)

    2017-08-12 18:36:24 writer:pprp 最近刚刚接触动态规划,感觉状态的查找和转移自己很难想到,都是面向题解编程,但是一开始都是这样了,只有相信我可以独立自己解决动态规划这类问 ...

  9. Dropping water balloons

    题意: 给你k个水球n层楼(n很大) 现在做实验在楼上向下丢水球,若水球没破可以重新丢,求把所有水球弄破的最小试验次数. 分析: 开始完全没思路啊.从正面求没法做不会表示状态,做实验是只能从第一层,一 ...

随机推荐

  1. SpringMVC02 AbstractController And MultiActionController

    1.AbstractController 若处理器继承自AbstractController类,那么该控制器就具有了一些新功能.因为AbstractControll类还继承自一个父类WebConten ...

  2. Linux环境 Java内存快速查看

    最近生产环境遇到内存老是占用很大的情况,16G的内存Free的内存只剩100多M,仿佛一颗定时炸弹一般,说不定就服务Down了.于是开始网上不断的找查看内存使用的方法.现学现卖,以下通过一个例子来演示 ...

  3. css样式优先级问题

    官方表述的CSS样式优先级如下: 通用选择器(*) < 元素(类型)选择器 < 类选择器 < 属性选择器 < 伪类 < ID 选择器 < 内联样式 那么,我们来举个 ...

  4. SQL 字符串函数

    http://www.w3cschool.cn/sql/sql-string-functions.html SQL 字符串函数 序号 Name Description 备注 1 ASCII() 返回最 ...

  5. 不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧

    Jerry和SAP成都研究院一些新同事聊天时,谈到ABAP和SAP GUI这个话题.很多新同事在加入SAP成都之前,是做Java和C++开发的,习惯了Eclipse/IntelliJ IDEA/Vis ...

  6. Problem X: C语言习题 学生成绩输入和输出

    Problem X: C语言习题 学生成绩输入和输出 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 4722  Solved: 2284[Submit] ...

  7. python 遍历list

    #!/usr/bin/env python# -*- coding: utf-8 -*-if __name__ == '__main__':    list = ['html', 'js', 'css ...

  8. java中Integer和int的区别

    亲看这里 例子: public class Test { public static void main(String[] args) { Integer i = new Integer(128); ...

  9. Java中什么是匿名对象,空参构造方法输出创建了几个匿名对象,属性声明成static

    package com.swift; //使用无参构造方法自动生成对象,序号不断自增 public class Person { private static int count; //如果在定义类时 ...

  10. 解决windows系统下打开应用弹出丢失libmysql.dll的问题

    只要把下载libmysql.dll,放到exe应用程序的所在目录,就可以运行,libmysql.dll有32位和64位版本,可以分别测试一下行不行,如果不行在换一个 版本试试.libmysql.dll ...