当前位置: 首页 > news >正文

01BFS

01BFS 是一种特殊的广度优先搜索(BFS)算法,主要用于解决图中边权仅为 0 或 1 的单源最短路径问题。

它是 Dijkstra 算法在特定条件下的高效变种,时间复杂度可以达到 \(O(V + E)\)\(V\) 是顶点数,\(E\) 是边数),比通用的 Dijkstra 算法(\(O(E \log V)\))更快。


1. 01BFS 的原理

在标准的 BFS 中,我们假设所有边的权重都是 1,所以先进入队列的节点距离一定不大于后进入的节点。但在边权包含 0 和 1 时,普通的队列无法保证这种“单调性”。

核心思想:
为了保证队列中节点的距离始终是从小到大排列的:

  • 如果当前经过的边权重是 0,说明到达下一个节点的距离没有增加,这个节点应该被优先处理
  • 如果当前经过的边权重是 1,说明到达下一个节点的距离增加了,这个节点按正常顺序排在后面。

实现方式:
使用双端队列(Deque)代替普通队列:

  1. 如果边权为 0:将新节点插入到队首(push_front)。
  2. 如果边权为 1:将新节点插入到队尾(push_back)。

这样可以确保:在任何时刻,队列中存在的节点,其到起点的距离最多只有两种(设为 \(d\)\(d+1\)),且 \(d\) 一定在 \(d+1\) 之前。


2. 01BFS 与 普通 BFS 的区别

特性 普通 BFS 01BFS
适用场景 所有边权均为 1(或相等且非负) 边权仅为 0 或 1
数据结构 普通队列 (queue) 双端队列 (deque)
入队逻辑 直接加到队尾 0 权边入队首,1 权边入队尾
更新机制 每个节点第一次被访问即是最短路 每个节点可能被多次探测,只有发现更短路径时才更新并入队
时间复杂度 \(O(V + E)\) \(O(V + E)\)

3. 01BFS 与 Dijkstra 的区别

其实 01BFS 可以看作是 Dijkstra 算法的特例优化

  • Dijkstra:使用优先队列(堆)来寻找当前距离最小的节点。每次弹出的复杂度是 \(O(\log V)\)
  • 01BFS:由于边权只有 0 和 1,最小距离节点要么是当前层的(通过 0 权边到达),要么是下一层的(通过 1 权边到达)。使用双端队列可以 \(O(1)\) 地完成维护工作,省去了堆排序的开销。

4. 算法流程 (伪代码)

dist[start] = 0
dq = deque([start])while dq:u = dq.popleft()for v, weight in neighbors[u]:if dist[v] > dist[u] + weight:dist[v] = dist[u] + weightif weight == 0:dq.appendleft(v) # 0权边,插到前面优先处理else:dq.append(v)     # 1权边,插到后面

5. 什么时候用 01BFS?

最典型的场景是:“最少代价”问题,且代价的增加不是连续的,而是开关式的。

  • 电路板/网格图问题:比如在网格中移动,直走代价为 0,转弯代价为 1,求到达终点的最小转弯次数。
  • 开关/翻转问题:比如某些路已经通了(代价 0),某些路需要修理才能通(代价 1),求最少修理次数。
  • 双端限制问题:在图中求一条路径,使得路径上满足某种条件的边最少。

总结

01BFS 的精髓在于利用双端队列维护了搜索过程中的单调性,从而在处理 0/1 权值图时,规避了 Dijkstra 堆排序的成本,达到了和普通 BFS 一样的线性时间复杂度。

http://www.jsqmd.com/news/294361/

相关文章:

  • 2026英语雅思口语培训辅导机构排行榜+核心解析 家长择校实用指南 精准匹配孩子口语备考需求
  • 2026 雅思备考必看|网上辅导 TOP5 权威口碑排行榜测评 高效提分推荐
  • 2026英语雅思培训学校机构辅导机构排行榜+核心解析 家长择校完全指南 帮孩子精准匹配适配的雅思备考方案避误区
  • 现在的00后,真是卷死了呀,想离职了·····
  • 加载权重文件后发现准确率有问题
  • 2026英语雅思培训学校机构辅导机构排行榜 家长择校完全指南:多维度评测帮孩子选对适配辅导机构
  • 2026英语雅思学习辅导机构推荐榜单 家长择校完全指南:多维度评测解析帮孩子选对适配机构
  • 2026英语雅思学习辅导机构排行榜+核心解析 家长择校实用指南 帮孩子精准匹配雅思学习全阶段适配方案避误区
  • 并查集及其应用专题--全网最详细版
  • 聚焦5家瑞祥卡回收1分钟高效操作平台
  • 2025年目前靠谱的花灯企业推荐榜单,春节国潮花灯/十二生肖花灯/宫灯/互动花灯/营销花灯/古镇花灯,花灯实力厂家哪家好
  • 2026英语雅思培训学校机构辅导机构排行榜+核心解析 家长择校实用指南 精准匹配孩子备考需求
  • 2026英语雅思学习辅导机构排行榜 家长择校实用指南:多维度评测帮孩子选对适配学习机构
  • 2026英语雅思学习辅导机构排行榜+核心解析 家长择校实用指南 帮孩子精准匹配适配的雅思备考方案
  • 四川高中复读学校推荐:家长关注的几所学校,高中/实验中学/学校/中学/高中复读学校,高中复读学校生产厂家联系方式
  • AI赋能创始人表达:从个人智慧到组织能力的战略跃迁
  • 2026年合肥中职择校指南:五大口碑校深度解析与趋势前瞻
  • 创始人IP:新质生产力时代,企业的“人格化”护城河
  • 2026英语雅思培训班辅导机构推荐榜单 家长择校完全指南:多维度评测解析帮孩子选对适配机构
  • 2026英语雅思培训班辅导机构排行榜+核心解析 家长择校实用指南 帮孩子精准匹配雅思备考全阶段适配方案
  • 合肥对口高考院校深度测评与选择指南(2026届考生必读)
  • 高校毕业生实习及就业去向信息管理系统(编号:3394424) --论文vue3
  • 2026英语雅思学习辅导机构排行榜+核心解析 家长择校完全指南 精准匹配孩子备考需求避误区
  • 基于 SpringCloud 的作品投票系统vue3
  • 全国通用的京东e卡回收多种任选渠道
  • 基于python的家教预约服务平台vue3
  • 2026英语雅思培训班辅导机构排行榜+核心解析 家长择校完全指南 帮孩子精准匹配适配的雅思备考方案避误区
  • 基于Spring Cloud技术的智慧云停车场服务管理系统vue3
  • 40种绕过WAF防火墙的Payload混淆技术,从零基础到精通,收藏这篇就够了!_waf绕过技战术
  • 基于spring mvc和mybatis的网上食品零食商城系统视频vue3