洛谷 CF652A 题解
题目传送门
题意:
有一只毛毛虫,从高度为 \(h1\) 的地方爬到高度为 \(h2\) 的地方。它在白天每小时上升 \(a\) 厘米,晚上每小时下掉 \(b\) 厘米。问到第几天的下午 \(2\) 点及以前,毛毛虫能到达 \(h2\)。
思路:
这道题就是简单的分类讨论,有以下几种情况:
- 永远无法到达,即下降速度大于等于上升速度并且在第一天白天无法爬到终点,输出 \(-1\)。
code:
if(a<=b && h1+a*8<h2){
cout<<-1<<endl;
}
- 在第一天白天就可以到达,不用判断晚上,输出 \(0\)。
code:
else if(h1+8*a >= h2){
cout<<0<<endl;
}
- 直接模拟每天的情况,直到到达 \(h2\) 为止,最后输出爬的天数即可。
code:
else{
long long day=1;
h1+=a*8-12*b+12*a;
while(h1<h2){
h1+=a*12;
h1-=b*12;
day++;
}
cout<<day<<endl;
}
本文来自博客园,作者:Black--Panda,转载请注明原文链接:https://www.cnblogs.com/liu-black/p/cf652a-tijie.html