AcWing 1100. 抓住那头牛
原题链接
简单
作者:
Value
,
2020-06-24 17:27:01
,
所有人可见
,
阅读 642
#include <iostream>
#include <queue>
using namespace std;
typedef pair<int, int> pii;
const int N = 200010;
bool st[N];
int main(){
int n, k; cin >> n >> k;
queue<pii> qu;
qu.push({n, 0});
st[n] = true;
int res;
while(!qu.empty()){
pii now = qu.front();
qu.pop();
if(now.first == k){
res = now.second;
break;
}
if(now.first + 1 < N && !st[now.first + 1]){
qu.push({now.first + 1, now.second + 1});
st[now.first + 1] = true;
}
if(now.first - 1 >= 0 && !st[now.first - 1]){
qu.push({now.first - 1, now.second + 1});
st[now.first - 1] = true;
}
if(now.first * 2 < N && !st[now.first * 2]){
qu.push({now.first * 2, now.second + 1});
st[now.first * 2] = true;
}
}
cout << res << endl;
return 0;
}
怎么又一种暴力的感觉/大雾
暴力出奇迹!
233333333333333333333333333333333333333