ACM--贪心 水题---hdoj 1049

http://acm.hdu.edu.cn/showproblem.php?pid=1049

题目大意:一只虫子一不小心掉进一个n英寸深洞中。它有足够的能量来爬你每分钟英寸,但随后必须休息一分钟之前再次攀升。在休息期间,它滑落d英寸。攀爬的过程和休息然后重复。多久前的虫子爬出好吗?我们会永远数每分钟作为一个整体的一部分,如果虫子只是达到顶端的最后的攀爬,我们将假设蠕虫让出来。

分析:可以分析,虫子最后一步爬出去一定是在上升阶段的,前面都是上升,下降循环进行。那我们先n-a,再去(n-a)%(u-d),判断是否可以整除。如果可以,说明不停循环的2分钟刚好可以在最后一步之前停止;如果不能,则先进行一个下降,再进行一个循环后才能出去。

#include<iostream>
using namespace std;
#include<cstring>
#include<cmath> 
#include<algorithm>
int main()
{
	int n,u,d;
	while(cin>>n>>u>>d){
		if(n==0&&u==0&&d==0)	break;
		int t=(n-u)%(u-d);
		if(t!=0)	t=(n-u)/(u-d)*2+3;
		else	t=(n-u)/(u-d)*2+1;
		printf("%d\n",t);
	}
	return 0;
 } 

猜你喜欢

转载自blog.csdn.net/qq_40725780/article/details/81237464