题解 AT3626 【Kaiden】
Mr_WA
2019-05-28 22:05:36
# AT3626 【Kaiden】
我今天倒要看看有谁还是用INT的!!!
# 献数据:1 ≤ K, A, B ≤ 10^18
long long int k,a,b;
如果一天爬的高度小于一天降下的高度,而且一天无法爬上去,
if(a<=b&&a<k)cout<<-1;
如果一天就能爬上去,
else if(k<=a)cout<<1;
本~~大佬~~蒟蒻是这么想的:我们如果能爬到k-a这个点,就肯定能爬上去了,记得加1。但是可能会出现没有余数的情况(已经爬上去了),那还要再判断,麻烦了~~很多很多~~一点。
这个方法我用了很多遍了:将被除数减1,这样能避免没有余数的情况。
注:减1之后除出来的余数为0,其实它本来的余数为1。
else cout<<(k-a-1)/(a-b)*2+3;
# END:
cout<<"\n";//岛国的题要换行!!!