问题标题: 酷町堂:5544寻宝

0
0
已解决
汪恺恒
汪恺恒
中级启示者
中级启示者

小萱萱参加了一个“寻宝”游戏:在一排均匀排列的树上,被随机放置了一个“宝贝”,看谁能以最少的时间找到这个“宝贝”。每一个寻宝的人开始会站在第N(0≤N≤100000)棵树边,假设树有100000 棵,“宝贝”被放在第K(0≤K≤100000)棵树上,寻宝人有两种移动办法:步行和跳跃。假如寻宝人现在在第X棵树边,步行每秒可以从第X棵树向第X-1棵和第X+1棵树走去,跳跃可以让她在1秒内从第X棵树直接跳到第2*X棵树边(假如他有超能力完成跳跃,跳跃过程中不能超过树的边界)。现在要求找到“宝贝”需要的最短时间。

输入描述 Input Description

仅有两个整数N和K。

输出描述 Output Description

最短时间

WA20

#include<iostream>
using namespace std;
int main(){
    int n,k;
    cin>>n>>k;
    int m=(k-n)/n,a=(k-n)%n,b=n-a;
    int ans=m+min(a,b);
    cout<<ans;
    return 0;
}

 


0
已采纳
梁逸凡
梁逸凡
资深守护
资深守护

用广度优先搜索

0
我要回答