"""
https://www.lanqiao.cn/problems/1509/learning/?page=1&first_category_id=1&problem_id=1509
"""
from collections import deque
def BFS(s, t):
q = deque()
# dis[i]表示到达节点i的距离和判断是否经过i节点
# 如果dis[i] == -1表示没有经过该节点
dis = [-1] * 100001
dis[s] = 0
q.append(s)
while len(q) != 0:
u = q.popleft()
if u == t:
return dis[u]
v_list = [u - 1, u + 1, 2 * u]
for v in v_list:
# 判断v是否越界和是否被标记
if 1 <= v <= 100000 and dis[v] == -1:
q.append(v)
dis[v] = dis[u] + 1
n, k = map(int, input().split())
print(BFS(n, k))
蓝桥杯-最少操作数
最新推荐文章于 2024-07-18 19:36:20 发布
这篇文章介绍了如何使用广度优先搜索算法(BFS)在给定图中找到从节点s到目标节点t的最短路径。代码展示了如何初始化距离数组、队列操作以及处理边界条件。
摘要由CSDN通过智能技术生成