码迷,mamicode.com
首页 > 编程语言 > 详细

[noip] bfs算法整理

时间:2019-10-21 23:26:46      阅读:177      评论:0      收藏:0      [点我收藏+]

标签:启发式   双向   最短路   fill   style   noi   出队   答案   整理   

BFS : 

  1.普通队列:维护

     (1)两段性(队列中至多有x和x+1两种距离)

     (2)单调性

  首次入队即为最短距离(所以通常要判重)

 

  2.优先队列:

  可能入队出队多次,通常首次 出 队即为最短距离(无需判重)

 

一.模型

  1.flood fill(洪水填充,即连通块模型)

  2.最短路(通常在网格图上,线性状态数量)

    1)边权都为1 

    2)边权为0或1(使用双端队列,边权为0的放入队首,边权为1的放入队尾)

  3.最小步数模型(把某状态操作前和操作后连一条边,边权为1)

 

二.优化(状态数量很多,状态扩展不确定的问题):

  1.双向广搜(适用于终点明确的问题),使用两个队列,分别扩展起点和终点的状态,为保证效率,通常保持两个队列状态数量一致

  2.启发式搜索

    A*:使用优先队列,根据从起点到该状态的最短距离 + 从该状态到终点的估值距离(估值距离 <= 实际答案),扩展状态,终点首次出队即为最小距  离(注意其他状态首次出队不能保证为最短距离)

    IDA*(未学习)

 

[noip] bfs算法整理

标签:启发式   双向   最短路   fill   style   noi   出队   答案   整理   

原文地址:https://www.cnblogs.com/swingkite/p/11717047.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!