洛谷P6546题解
由于数字达到了10^9,直接模拟肯定会超时。
爬上a米,滑下b米,很明显,一天可以爬(a-b)米。
但是最后一天如果已经爬到v米了,就不用滑下去了,我们可以先算出第一天爬的距离,然后按照先滑再爬的顺序计算。
如果除不尽,就要向上取整,用ceil函数。
题目中说了a>b,所以一定有解。
代码:
1 #include<bits/stdc++.h> 2 using namespace std; 3 int a,b,v,ans; 4 int main(){ 5 scanf("%d%d%d",&a,&b,&v); 6 v-=a;//先算出第一天的 7 ans=ceil(1.0*v/(a-b)); 8 printf("%d",ans+1);//别忘了加回去 9 return 0; 10 }