1 条题解
-
1
题意
题目传送门:
题目说的非常清楚,就不再进行解释了。
思路
首先分三种情况:。
-
。
先将 一直 ,直到 会 时停止,记下次数 。然后有两种情况:
- ( 没有超过 ,让 减到 )
- ( 再一次 ,超过 ,让 加到 )
-
。
让 一直加到 。
-
。
直接输出 。(或者分为 这类)
思路就是这样,然后就分类处理就行了。
Code
下面是我的赛时代码:
#include <iostream> using namespace std; int main() { long long a, b; cin >> a >> b; long long cnt = 0; if(a < b) { while(a*2 <= b) cnt++, a *= 2; cout << min(cnt+(b-a), cnt+1+(a*2-b)) << endl; } else cout << (a-b) << endl; return 0; }
-
信息
- ID
- 102
- 时间
- 3000ms
- 内存
- 512MiB
- 难度
- 2
- 标签
- 递交数
- 717
- 已通过
- 138
- 上传者