虫子爬进问题
来源:互联网 发布:javabean连接数据库 编辑:程序博客网 时间:2024/05/17 02:14
1.问题大意
一个n英寸的井中有一条1英寸的虫。虫子u英寸/minutes,爬一分钟必须休息一分钟。休息期间虫子会掉d英寸。给出需要多少秒一个虫爬出井。 题意的理解很重要,开始时我理解为必须刚好最后一步到达井口,才算爬出井。所以对立面 n=19、u=3、d=1时间为19的例子算了半天都没有找到一个合理的到达井口的走法。后来看题解,发现并不是刚好到达,只要最后一部能大于等于n也算到达。
2.循环减法
方法:
将n与u比较,如果n小于等于u这说明下一步可以一步出井,否则需要跳一步滑下一下,两秒钟。然后再进行上面的判断。
代码:
#include <iostream>using namespace std;int main(){ int n,u,d; while(cin>>n>>u>>d&&n){ int ans = 0; while(n>u){ n=n-u+d; ans+=2; } ans++; cout<<ans<<"\n"; } return 0;}
3.数学计算法
方法: ans = 向上取整[(n-u)/(u-d)]*2+1向上取整[(n-u)/(u-d)] = [(n-u+u-d-1)/(u-d)] = [(n-d-1)/(u-d)]即:ans = [(n-d-1)/(u-d)]为什么要上去整:最后一步肯定小于等于u,因此n-u表示走一步掉一步能到达的高度。因为u>d,所以如果a=(n-u)/(u-d)不是整数的话如果下取整,那么跳a*2步,剩下的距离大于u所以不能一步跳上去,还需要再跳一步才能到达。如果有小数时上取整,第a*2-1步是不是到达井口的,所以可以放心跳,同时最后一步也可以到达井口。
参考
[1] 题目来源hdu 1049
生词
inch 英寸 worm 虫 well 井 climb 爬 portion 一部分
阅读全文
1 0
- 虫子爬进问题
- 四只虫子问题
- 寒假之作—HDU—虫子爬井问题
- 虫子爬井(有待改进)
- (转载)脚本的故事--虫子爬进来了,但却赖着不走
- ACM--虫子爬井--模拟--HDOJ 1049--Climbing Worm--水
- 虫子妈妈
- 面包 & 虫子
- Python爬虫框架Scrapy学习三记—让虫子爬
- 夜猫虫子
- VS2005的大“虫子”
- 抓到两只IE8的虫子
- 寻找金虫子
- 虫子的博客
- 小虫子的成长
- 苹果与虫子
- 苹果和虫子
- POJ 2492 虫子交配
- 【数据压缩】H.264编码
- 【Python那些事儿】数据放缩
- [leetcode]576. Out of Boundary Paths
- Git submodule (1)
- Windows下Mysql5.7忘记root密码的解决方法
- 虫子爬进问题
- juc--CopyOnWriteArraySet
- CodeVS1294 全排列 题解
- :微信打飞机
- 嵌入式软件-STM32串口中断函数
- python 2 代码转换到Python 3的方法
- idea maven pom不自动更新
- php中file_put_contents 权限的问题
- CodeVS4064 全排列 题解