用户输出
10
系统信息
Exited with return code 0
编号 | 题目 | 状态 | 分数 | 总时间 | 内存 | 代码 / 答案文件 | 提交者 | 提交时间 |
---|---|---|---|---|---|---|---|---|
#109702 | #1449. 跳跃机器人 | Accepted | 100 | 75 ms | 3008 K | C++ 17 / 752 B | yuanche | 2024-07-08 22:32:57 |
#include <bits/stdc++.h>
using namespace std;
bool visited[int(1e6 + 1)];
queue<pair<int, int>> q;
int bfs(int n) {
if (n == 1)
return 0;
q.push({ 1, 0 });
visited[1] = true;
while (!q.empty()) {
int pos = q.front().first;
int cnt = q.front().second;
q.pop();
int next[3] = { pos - 1, pos + 1, pos * 2 };
for (int i = 0; i < 3; i++) {
int P = next[i];
if (P == n) {
return cnt + 1;
}
if (P > 0 && P <= n && !visited[P]) {
visited[P] = true;
q.push({ P, cnt + 1 });
}
}
}
}
int main() {
int n;
scanf("%d", &n);
printf("%d", bfs(n));
return 0;
}