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 ...
随机推荐
- winform listbox与textbox组合提示框 模糊查询
private void listbox1_MouseClick(object sender, MouseEventArgs e) { textbox1.Vis ...
- C++ 排序函数 sort(),qsort()的用法
转自:http://blog.csdn.net/zzzmmmkkk/article/details/4266888/ 所以自己总结了一下,首先看sort函数见下表: 函数名 功能描述 sort 对给定 ...
- 为什么我的SQL server 在附加数据库后,数据库总是变成了只读?
我从同学那拷贝来一个数据库,在他那都可以用,可是当我附加到自己SQL Server上时,数据库显示为只读,我查看过数据库源文件所在的文件夹都正常!请高手指教!谢谢 ================== ...
- MVC3迁移MVC4相关问题
mvc3迁移到mvc4后,发布到服务器,出现了如下错误: [A]System.Web.WebPages.Razor.Configuration.RazorPagesSection cannot be ...
- SQL语句的添加、删除、修改多种方法
SQL语句的添加.删除.修改虽然有如下很多种方法,但在使用过程中还是不够用,不知是否有高手把更多灵活的使用方法贡献出来? 添加.删除.修改使用db.Execute(Sql)命令执行操作╔------- ...
- 在matlab和opencv中分别实现稀疏表示
在本文中,稀疏表示的原理不再具体讲解,有需要的同学请自行百度. 本文采用OMP算法来求解稀疏系数.首先随机生成字典数据和待测试数据 字典数据: dic =[ 6, 7, 9, 9, 7, 0, 6, ...
- 关于java按位操作运算
<1>.在了解位移之前,先了解一下正数和负数的二进制表示形式以及关系:举例15和-15:15 的原码: 00000000 00000000 00000000 00001111 补码 ...
- 信息安全系统设计基础exp_2
详见搭档20135322郑伟博客,链接如下:http://www.cnblogs.com/zhengwei0712/p/4971435.html
- JavaScript实例---表格隔行变色以及移入鼠标高亮
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title> ...
- IDL简介与corba入门案例
IDL接口定义语言简介 IDL用中立语言的方式进行描述,能使软件组建(不同语言编写的)间相互通信. IDL提供了一个桥来连接不同的系统. Corba 上的服务用IDL描述,将被映射为某种程序设计语 ...