UVa 10934 DP Dropping water balloons
2024-09-04 17:28:41
首先想一下特殊情况,如果只有一个气球,我们要确定高度只能从下往上一层一层地测试,因为如果气球一旦爆了,便无法测出气球的硬度。
如果气球有无数个,那么就可以用二分的方法来确定。
一般地,用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 ;
}
代码君
最新文章
- net命令
- Winform开发框架之客户关系管理系统(CRM)的开发总结系列3-客户分类和配置管理实现
- Python连接MySQL数据库
- 当用GridView导出Execl的时候,会发生只能在执行 Render() 的过程中调用 RegisterForEventValidation的错误
- 有趣 GIF 动图集 - 仿佛每张小动图都诉说了一个小笑话或者小故事
- HDU 5294 Tricks Device (最短路,最大流)
- xml写代码
- 当Scheduler拿不到url的 时候,不能立即退出
- Junit4的最简单例子
- HDU 3689 Infinite monkey theorem [KMP DP]
- YUM安装软件
- JDOM生成、解析XML实例
- 从线性模型(linear model)衍生出的机器学习分类器(classifier)
- 工控随笔_07_西门子_WinCC利用命令行实现操作log日志
- Spring Cloud 研发框架demo
- wc语法
- nlogn LIS模板
- MEMS 硅麦资料收集
- 【spring boot】映射properties文件属性--到Java对象
- 【疑】checkpoint防火墙双链路切换导致丢包问题