【笔记】0-1 bfs

问题引入

对于边权为 0/1 的图 G=(V,E),求解其最短路。(注意这里的 1 并不一定就是 1,只是反映有无权值)

ps. 一下称该类图为 0-1 图


求解

一般图一般有 Dijkstra 和 SPFA。

但对于 0-1 图这样特殊的图,O(mlogm) 的 Dijkstra 就显的冗余了。

问题主要在于,每次 dis 的更新波动很小,用 优先队列 维护的 Dijkstra 就大材小用了。

考虑直接用 双端队列 代替 优先队列。

具体地,把没有权值的边扩展到的点放到队首,有权值的边扩展到的点放到队尾。

这样即可保证像普通 bfs 一样整个队列队首到队尾权值单调不下降。

时间复杂度

O(n+m)

posted @   CloudWings  阅读(14)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下
点击右上角即可分享
微信分享提示