博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UVa10934 装满水的气球
阅读量:6927 次
发布时间:2019-06-27

本文共 857 字,大约阅读时间需要 2 分钟。

原题链接:

解析:设还剩i个气球,j次机会时能够测得的最大高度为d[i][j](换句话说,就是d[i][j]层内,可以用i个气球j次机会测出气球硬度为j),可以知道:

  • 如果此层气球炸了,那么就意味着d[i][j] - 1 层必须用i-1个气球,测试j-1次测出来,于是d[i][j] = d[i-1][j-1] + 1。
  • 如果此层没有破裂,那么说明还有i个气球,j-1次机会来在d[i][j]的基础上测最高层数,因此d[i][j] = d[i-1][j-1]+1+d[i][j-1]

代码实例:

#include
#include
using namespace std;const int maxk = 100;const int maxa = 63;unsigned long long d[maxk+1][maxa+1];int main() { memset(d, 0, sizeof(d)); for(int i = 1; i <= maxk; i++) for(int j = 1; j <= maxa; j++) d[i][j] = d[i-1][j-1] + 1 + d[i][j-1]; int k; unsigned long long n; while(cin >> k >> n && k) { int ans = -1; for(int i = 1; i <= maxa; i++) if(d[k][i] >= n) { ans = i; break; } if(ans < 0) cout << "More than " << maxa << " trials needed.\n"; else cout << ans << "\n"; } return 0;}

 

转载于:https://www.cnblogs.com/long98/p/10352219.html

你可能感兴趣的文章
谷歌技术&quot;三宝&quot;之MapReduce
查看>>
按需讲解之Supervisor
查看>>
有关判断为空的简写方法
查看>>
索引键的唯一性(1/4):堆表上的唯一与非唯一非聚集索引的区别
查看>>
窥探Swift之基本数据类型
查看>>
用户浏览器关闭cookie处理方法
查看>>
QT国际化 一 (lupdate/linguits/lrelease)
查看>>
Java知多少(105)套接字(Socket)
查看>>
SSRS 的简单使用(一)
查看>>
C#设计模式:单件(例)模式 -- 类也玩计划生育
查看>>
Bower 手册
查看>>
看《css知多少》的一些总结
查看>>
kiki's game
查看>>
Samza/KafkaAnalysizing
查看>>
mybatis实战教程(mybatis in action)之九:mybatis 代码生成工具的使用
查看>>
DMA/TIM capture
查看>>
linux中fork()函数详解(原创!!实例讲解)
查看>>
ThinkPHP自动填充实现无限级分类的方法
查看>>
KTAG K-TAG ECU Programming Tool
查看>>
javascript模板方法模式
查看>>