BFS在入队还是出队时记录距离

如果可以确定先入队的距离一定更小的话,则可以(先判断是否为初始值,如果是初始值,可以入队,则)在入队的时候记录距离,例如边权为1的BFS。

 

如果不能确定,

例如01BFS,可能先对1入队,再对0入队,

由于可以确保出队时是有序的,可以在出队时记录(类似dijkstra),

也可以在入队时记录距离(当前距离小于已经记录的距离),且出队时判断/更新vis(表示是否已经搜索过更小的距离,也可以不做这个判断,在下一步搜索时会直接被卡掉)。(初始化为正无穷,通用做法)

 

所以通用的做法是,初始化为正无穷,入队时判断是否小于已经记录的距离?

posted @   80k  阅读(40)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示