关闭

uva 10934 装满水的气球

标签: uva
1039人阅读 评论(0) 收藏 举报
分类:

题意和思路见:

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;
}




0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

uva 10603 Fill(倒水问题 BFS)

貌似uva崩了,现在进不去,所以这道题还判断正确与否,其实无所谓了,我这是看的网上的代码,写的基本上一样,唉,没办法,不会做,又看了网上的题解,认真写理解吧还是。。。 构造了一个结构体,water数组...
  • sinat_22659021
  • sinat_22659021
  • 2015-07-30 12:33
  • 1057

UVa在线比赛单题汇总-----DP专题

动态规划基础 例题 LA 3882 UVa 3882 - And Then There Was One 递推------------无力orz UVa 10635 10635 -...
  • cyendra
  • cyendra
  • 2013-04-21 21:29
  • 2260

[Android实例] 水下气泡上升界面效果

该篇文章从eoeAndroid搬迁过来的,原文地址:[Android实例] 水下气泡上升界面效果 首先声明,该效果并不是用动画实现的,而是用自定义View实现的,在onDraw方法里面调用inval...
  • krubo1
  • krubo1
  • 2016-01-05 11:50
  • 1323

uva 10934 Dropping water balloons(dp | 难想)

题意 你有k个一模一样的水球,在一个n层楼的建筑物上进行测试,你想知道水球最低从几层楼往下丢可以让水球破掉。由于你很懒,所以你想要丢最少次水球来测出水球刚好破掉的最低楼层。(在最糟情况下,水球在顶楼...
  • shuangde800
  • shuangde800
  • 2013-09-12 00:29
  • 4382

UVA 10934 Dropping water balloons

题目链接:http://acm.hust.edu.cn/vjudge/problem/27377 题意:你现在有k个气球,你可以借助n层楼去测试气球的硬度,如果你从x层扔下气球,气球炸了,你会少一...
  • chy20142109
  • chy20142109
  • 2016-08-22 10:17
  • 132

uva10934 Dropping water balloons

动态规划
  • sdfzyhx
  • sdfzyhx
  • 2016-10-26 20:41
  • 178

UVA 12627 气球胀啊胀

题目在此题意:第0个小时有一个红气球,每过一个小时,一个红气球膨胀为3个红球和1个蓝球 一个蓝球膨胀为4个蓝球,排成下图的样子,问过了k小时,第a行到第b行有多少个红球看下题目里的图,把每个图十字分...
  • cww97
  • cww97
  • 2016-02-17 16:05
  • 247

例题8-12 奇怪的气球膨胀(Erratic Expansion, UVa12627)

首先由图形很容易想到递归求解。 采用分治的方法,分别计算出B行之前和A-1行之前的红气球总数,那么A~B行的气球总数就是两者相减。#include #include #include #inc...
  • chcnsn
  • chcnsn
  • 2017-11-19 21:21
  • 65

例题8-12 奇怪的气球膨胀 UVa12627

找到递推公式,题目就引刃而解了。数学公式博文没办法写,就写在了word上,切过来了: 用 f 或者 g 都能求出,我两个方法都试了,结果用 g 要比 f 快了近一倍,原本以为 f 会快些,可...
  • qq_36459536
  • qq_36459536
  • 2017-12-01 22:09
  • 30

算法竞赛入门经典 例题8-12 奇怪的气球膨胀 Erratic Expansion uva12627

题目:https://vjudge.net/problem/UVA-12627 思路:图形的变化很有规律,可以看出下一个图形是由3个上一个图形和右下方蓝色的的正方形组成。 我定义了...
  • Rewriter_huanying
  • Rewriter_huanying
  • 2017-05-17 10:54
  • 296
    个人资料
    • 访问:137877次
    • 积分:3144
    • 等级:
    • 排名:第12720名
    • 原创:175篇
    • 转载:6篇
    • 译文:9篇
    • 评论:13条
    博客专栏