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

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

一般地,用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 ;
}

代码君

最新文章

  1. net命令
  2. Winform开发框架之客户关系管理系统(CRM)的开发总结系列3-客户分类和配置管理实现
  3. Python连接MySQL数据库
  4. 当用GridView导出Execl的时候,会发生只能在执行 Render() 的过程中调用 RegisterForEventValidation的错误
  5. 有趣 GIF 动图集 - 仿佛每张小动图都诉说了一个小笑话或者小故事
  6. HDU 5294 Tricks Device (最短路,最大流)
  7. xml写代码
  8. 当Scheduler拿不到url的 时候,不能立即退出
  9. Junit4的最简单例子
  10. HDU 3689 Infinite monkey theorem [KMP DP]
  11. YUM安装软件
  12. JDOM生成、解析XML实例
  13. 从线性模型(linear model)衍生出的机器学习分类器(classifier)
  14. 工控随笔_07_西门子_WinCC利用命令行实现操作log日志
  15. Spring Cloud 研发框架demo
  16. wc语法
  17. nlogn LIS模板
  18. MEMS 硅麦资料收集
  19. 【spring boot】映射properties文件属性--到Java对象
  20. 【疑】checkpoint防火墙双链路切换导致丢包问题

热门文章

  1. JFrame Frame 窗口关闭
  2. CSS filter 属性
  3. ES6学习(2)
  4. 新项目升级到JFinal3.5之后的改变-着重体验自动依赖注入
  5. 常用浏览器User-Agent大全
  6. Yii2 的快速配置 api 服务 yii2-fast-api
  7. GoAccess安装和使用介绍
  8. mysql-单表操作
  9. hdu 5093 Battle ships (二分图)
  10. mac安装webpack失败