uva 10934 装满水的气球
题意和思路见:
http://blog.csdn.net/shuangde800/article/details/11273123
我的想法:
首先问题转化一下
将问题转化成:定义f[i][j] 表示给i个水球和j次实验机会,最高可以測试到几层~
则会有例如以下的转移方程:
f[i][j] = f[i][j-1] + f[i-1][j-1] + 1;
后一部分是说选在第k层试第一次,假设摔破了,说明边界在以下的层中。
所以说选的那个k层,k最大应该满足k <= f[i-1][j-1] + 1; 由于要保证一旦水球在第k层摔坏了。以下的全部层都能够在还有i-1个球和j-1次机会时測出来。
前一部分表示选在k层试第一次。可是球并没有摔坏。这个时候最高就是在k层的基础上,加上 还有i个球和j-1次机会时可以再往上測几层~即f[i][j-1];
所以综上两部分,f[i][j]最大就等于f[i-1][j-1] + 1 + f[i][j-1];
code:
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std; long long f[110][65]; void init(){
memset(f, 0, sizeof(f));
for(int i = 1; i < 64; i++){
for(int j = 1; j < 64; j++){
f[i][j] = f[i][j-1] + 1 + f[i-1][j-1];
}
}
}
int main(){
init();
int k;
long long n;
while(scanf("%d%lld",&k,&n) != EOF){
if(k == 0) break;
k = min(k, 63);
bool ok = false;
for(int i = 0; i <= 63; i++ ){
if(f[k][i] >= n){
printf("%d\n",i);
ok = true;
break;
}
}
if(!ok) printf("More than 63 trials needed.\n");
}
return 0;
}
uva 10934 装满水的气球的更多相关文章
- UVA - 10934 Dropping water balloons(装满水的气球)(dp)
		
题意:有k个气球,n层楼,求出至少需要多少次实验能确定气球的硬度.气球不会被实验所“磨损”. 分析: 1.dp[i][j]表示第i个气球,测试j次所能确定的最高楼层. 2.假设第i-1个气球测试j-1 ...
 - UVa 489 HangmanJudge --- 水题
		
UVa 489 题目大意:计算机给定一个单词让你猜,你猜一个字母,若单词中存在你猜测的字母,则会显示出来,否则算出错, 你最多只能出错7次(第6次错还能继续猜,第7次错就算你失败),另注意猜一个已经猜 ...
 - UVa 1585 Score --- 水题
		
题目大意:给出一个由O和X组成的串(长度为1-80),统计得分. 每个O的分数为目前连续出现的O的个数,例如,OOXXOXXOOO的得分为1+2+0+0+1+0+0+1+2+3 解题思路:用一个变量t ...
 - uva 10934 Dropping water balloons(转载)
		
本文转载自http://blog.csdn.net/shuangde800/article/details/11273123 题意 你有k个一模一样的水球,在一个n层楼的建筑物上进行测试,你想知道水球 ...
 - UVA 11636-Hello World!(水题,猜结论)
		
UVA11636-Hello World! Time limit: 1.000 seconds When you first made the computer to print the sentenc ...
 - UVA - 10934 Dropping water balloons (dp,逆向思维)
		
题目链接 题目大意:给你n个规格一样的气球和一栋大楼的高度,求最少试验几次能测出气球最高在哪一层掉下来不破. 如果这道题想用(dp[i][j]=用i个气球测出j高度的楼需要几次)来作为状态的话,那你就 ...
 - uva 10934 Dropping water balloons
		
你有k个一模一样的水球,在一个n层楼的建筑物上进行测试,你想知道水球最低从几层楼往下丢可以让水球破掉.由于你很懒,所以你想要丢最少次水球来测出水球刚好破掉的最低楼层.(在最糟情况下,水球在顶楼也不会破 ...
 - UVa 10934 DP Dropping water balloons
		
首先想一下特殊情况,如果只有一个气球,我们要确定高度只能从下往上一层一层地测试,因为如果气球一旦爆了,便无法测出气球的硬度. 如果气球有无数个,那么就可以用二分的方法来确定. 一般地,用d(i, j) ...
 - COGS 1406. 邻居年龄排序[Age Sort,UVa 11462](水题日常)
		
★ 输入文件:AgeSort.in 输出文件:AgeSort.out 简单对比时间限制:1 s 内存限制:2 MB [题目描述] Mr.Zero(CH)喜闻乐见地得到了一台内存大大增强 ...
 
随机推荐
- Python Requests 小技巧总结
			
关于 Python Requests ,在使用中,总结了一些小技巧把,分享下. 1:保持请求之间的Cookies,我们可以这样做. import requests self.session = req ...
 - ATL CLR MFC Win32 常规 的区别
			
ATL用于编写COM程序,CLR是.NET的公共语言运行库,MFC是指MFC类库,MFC程序是用这些类库做出的程序,WIN32常规就是不用 MFC,使用API函数编的程序. MFC.ATL和CLR是V ...
 - 【C++】嵌套类、友元
			
黄邦勇帅 里面关于嵌套类的介绍我有疑惑.里面11.9说在创建一个外围类的对象时先执行嵌套类的构造函数然后再执行外围类的构造函数,析构函数则以相反的方式执行. 可是我编程实验了一下,创建外围类对象时并不 ...
 - CSDN博客用Windows Live Writer方法,终于可以离线编辑了!
			
以下是安装WLW 和相关设置: 1. 下载安装WLW (步骤略,可自行下载,官方下载地址:http://www.microsoft.com/zh-cn/download/details.aspx?id ...
 - cmake 同时编译多个cpp文件
			
cmake_minimum_required(VERSION 2.8) project(coding) file(GLOB_RECURSE EXTRA_FILES */*) add_custom_ta ...
 - serversql tinkphp
			
public function iconv2utf8($Result) { $Row=array(); $key1=array_keys($Res ...
 - Nvidia 的新显卡架构 Maxwell 性能相比开普勒提升了多少?
			
作者:喵西和熊链接:https://www.zhihu.com/question/22630075/answer/29041618来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注 ...
 - Codeforces 691C. Exponential notation
			
题目链接:http://codeforces.com/problemset/problem/691/C 题意: 给你一个浮点数,让你把这个数转化为 aEb 的形式,含义为 a * 10b, 其中 a ...
 - memcahced部署
			
Memcached是一个内存数据库,数据以key/value键值对的形式保存在服务器预先分配的内存区块中,由于Memcached服务自身没有对缓存的数据进行持久化存储的设计,因此,在服务器端的Memc ...
 - HDOJ 5385 The path
			
Dicription You have a connected directed graph.Let $d(x)$ be the length of the shortest path from $1 ...