hdu 1049 Climbing Worm

解题思路:
1. 两种情况,0x1:井深度小于一次跳的高度.0x2:井深度大于一次跳的高度
2.如果 属于 0x1 则一次跳出
3.否则 本次解题中直接枚举跳的次数
一直循环,直到 【每次跳的真实高度(一次高度减去滑下的高度)】*【次数(循环)】+【最后一次(一次的高度)】大于等于井深度
得到次数
4. 输出:次数*2+1
次数*2:每跳一次,休息一分钟
+1 :最后一跳,直接跳出井
Ac code:
#include<stdio.h>
int main(void)
{
int n,u,d;
int sum,i;
while(scanf("%d%d%d",&n,&u,&d)!=EOF&&n)
{
if(n<=u)sum=1;
else
{
for(i=1;; i++)
if(n<=((u-d)*i+u))
break;
sum=2*i+1;
}
printf("%d\n",sum);
}
return 0;
}
错误版本,求大神指正:
sum 可以看成求得次数。
(n-u):去掉最后一跳
(u-d):每次跳的真实高度
取得最后一跳 / 每次的高度 , 并强制转换成 double +0.5
举例:
n=10 u=2 d=1: 8 / 1 +0.5 =8 ->8*2+1=17
n=20 u=3 d=1: 17 /2 +0.5=9->9*2+1=19
错的不知所云
#include<stdio.h>
int main(void)
{
int n,u,d;
int sum;
while(scanf("%d%d%d",&n,&u,&d)!=EOF&&n)
{
sum=(int)(((double)(n-u)/(u-d))+0.5);
printf("%d\n",sum*2+1 );
}
return 0;
}
经Taskr同学提醒: 10 9 1 该组测试数据发现问题
修正版AC代码:
#include<stdio.h>
int main(void)
{
int n,u,d;
int sum;
while(scanf("%d%d%d",&n,&u,&d)!=EOF&&n)
{
sum=ceil(((double)(n-u)/(u-d))); //仅修改了本行
printf("%d\n",sum*+ );
}
return ;
}
hdu 1049 Climbing Worm的更多相关文章
- Climbing Worm
Climbing Worm Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Tot ...
- 【hdoj_1049】Climbing Worm
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1049 以 上升-下降 一次为一个周期,一个周期时间为2分钟,每个周期上升距离为(u-d).先只考虑上升,再 ...
- HDU 4315 Climbing the Hill (阶梯博弈转尼姆博弈)
Climbing the Hill Time Limit: 1000MS Memory Limit: 32768KB 64bit IO Format: %I64d & %I64u Su ...
- hdu 4315 Climbing the Hill(阶梯博弈转nim博弈)
Climbing the Hill Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others ...
- HDU 4315 Climbing the Hill(阶梯博弈)
http://acm.hdu.edu.cn/showproblem.php?pid=4315 题意:由上至下有多个格子,最顶端的是山顶,有多个球,其中有一个球是king,每次可以将球向上移动任意个格子 ...
- HDU 2782 The Worm Turns (DFS)
Winston the Worm just woke up in a fresh rectangular patch of earth. The rectangular patch is divide ...
- hdu 4315 Climbing the Hill && poj 1704 Georgia and Bob阶梯博弈--尼姆博弈
参考博客 先讲一下Georgia and Bob: 题意: 给你一排球的位置(全部在x轴上操作),你要把他们都移动到0位置,每次至少走一步且不能超过他前面(下标小)的那个球,谁不能操作谁就输了 题解: ...
- hdu 4315 Climbing the Hill 博弈论
题意:有n个人爬山,山顶坐标为0,其他人按升序给出,不同的坐标只能容纳一个人(山顶不限),Alice和Bob轮流选择一个人让他移动任意步,但不能越过前面的人,且不能和前面一个人在相同的位置.现在有一个 ...
- HDU 4315 Climbing the Hill [阶梯Nim]
传送门 题意: 和上题基本一样:山顶可以有多人,谁先把king放到山顶谁就胜 并不太明白 #include <iostream> #include <cstdio> #incl ...
随机推荐
- 深入了解view以及自定义控件
参考文章: http://blog.csdn.net/guolin_blog/article/details/12921889 Android LayoutInflater原理分析,带你一步步深入了解 ...
- OpenShift
一步一脚印 停停走走,回头看看 博客园 首页 新随笔 联系 订阅 管理 随笔 - 24 文章 - 8 评论 - 2 调戏OpenShift:一个免费能干的云平台 一.前因后果 以前为了搞微信的 ...
- MATLAB对于文本文件(txt)数据读取的技巧总结(经典中的经典)
振动论坛原版主eight的经典贴http://www.chinavib.com/thread-45622-1-1.html MATLAB对于文本文件(txt)进行数据读取的技巧总结(经典中的经典)由于 ...
- Javascript跨域问题总结
疯狂的JSONP 关于JSON与JSONP简单总结 window.name实现的跨域数据传输 JavaScript跨域总结与解决办法 flash跨域策略文件crossdomain.xml配置详解
- MATLAB代码加密生成.p文件
代码就下面一句话: pcode yourfile.m 生成的 yourfile.p就是你的加密文件,别人是看不到代码的,调用和m文件调用一样.
- WCF Data Service 使用小结(二) —— 使用WCF Data Service 创建OData服务
在 上一章 中,介绍了如何通过 OData 协议来访问 OData 服务提供的资源.下面来介绍如何创建一个 OData 服务.在这篇文章中,主要说明在.NET的环境下,如何使用 WCF Data Se ...
- jQuery ajax - get(),getJSON(),post()方法
1) jQuery ajax - get() 方法: $(selector).get(url,data,success(response,status,xhr),dataType) 参数 ...
- jdbc基础 (三) 大文本、二进制数据处理
LOB (Large Objects) 分为:CLOB和BLOB,即大文本和大二进制数据 CLOB:用于存储大文本 BLOB:用于存储二进制数据,例如图像.声音.二进制文件 在mysql中,只有B ...
- 使用Nginx解决IIS绑定域名导致应用程序重启的问题
在将多个站点迁移到一个站点(Tenant Feature)的时候碰到了一个棘手的问题,用户需要绑定自定义域名,但IIS绑定域名的时候会导致这个站点重启,那么只要一个用户绑定了一个域名则会导致这个应用上 ...
- [AHOI2013]打地鼠(网络流)
[问题描述] 游戏里一共会冒出来N个地鼠,这些地鼠冒出来的位置都分布在一条直线上.第i个地鼠会在Ti时刻在Xi位置冒出来,打到第i个地鼠的得分是Pi. 当游戏开始时(也就是0时刻) ...