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)喜闻乐见地得到了一台内存大大增强 ...
随机推荐
- 创建第一个maven项目的那些坑
1.记事本方式: class所在的目录结构: class的代码书写: package com.imooc.maven01.mode1; public class HelloWorld { public ...
- JAVA中“==”和equals
A."=="可用于基本类型和引用类型: 当用于基本类型时候,是比较值是否相同:1==2: false: 当用于引用类型的时候,是比较是否指向同一个对象. B.基本类型int.c ...
- php扩展
swoole 命令行/php-fpm下实现的 多线程.异步.多种网络协议等 https://wiki.swoole.com/wiki/page/6.html 编译安装, 注意:需命令行运行,作为内部服 ...
- python数据类型-----列表
今天来总结下python3.4版本列表的一些操作方法. 列表(list): 1.列表就像一个线性容器,但是比C++的 lis t扩展多得多,列表里的元素可以是相同类型,也可以包含各种类型,比如列表里嵌 ...
- python日志模块笔记
前言 在应用中记录日志是程序开发的重要一环,也是调试的重要工具.但却很容易让人忽略.之前用flask写的一个服务就因为没有处理好日志的问题导致线上的错误难以察觉,修复错误的定位也很困难.最近恰好有时间 ...
- 使用AutoMapper 处理DTO数据对象的转换
using AutoMapper;using System; namespace DTOtEST{ class Program { static void Main(string[] args) { ...
- easyui中导航菜单accordion与tree的动态添加
博客分类: Java Web开发 Js代码 $.parser.parse(); $.ajax({ url:my.bp()+'/main/menuaction!createMenu.action ...
- Oralce聚合多行
拼接的字符串长度满足varchar2(4000)时, 可以用 LISTAGG(NAME, '_') WITHIN GROUP(ORDER BY LEVEL_T DESC) 当拼接大段文本时,采用 10 ...
- json数据格式了解
json数据格式介绍: https://en.wikipedia.org/wiki/JSON JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式 json语法 ...
- eclispe新导入的文件有个小红叉号(x)的问题
关于这个问题,我百度了很久,后面发现很简单的就解决了:我觉得可能大家的问题不一样,或许解决方法可能是一样的: 参考链接:https://zhidao.baidu.com/question/616762 ...