搜索

树的问题

研究点

  1. 叶子day1t1
  2. 子树day1t1
  3. 根节点day1t1
  4. dfs序day4t2
  5. 重心

套路

  1. 无根转有根,维护点到根的性质
  2. 合并性贪心给树染色
  3. 倍增求lcaday3t3
  4. 基环树找环,处理办法,分为顺时针和逆时针day5t2
  5. 换根法day5t2

dfs

分组问题

两种思路

  1. 每个组放那些物品
  2. 每件物品放到哪些组

三种剪枝

  1. 最优性剪枝
  2. 搜索顺序,从大到小,从决策少到决策多
  3. 去重:枚举顺序,第一个加入组的物品,最后一个加入组中的物品,相同物品一件失败全部失败;相反操作记录。

数独问题

  1. 搜索顺序:从可填少的填起,先填只能填在一个位置上的字母
  2. 可行性剪枝:不能填的位置和不能填在任何位置的字母

双向搜索

迭代加深

\(IDA^*\)优化

bfs

套路

  1. 单调性
  2. 设状态
  3. 起点终点逆向思维
  4. 网格图问题转化为图

6大广搜

  1. 普通bfs
  2. 双向bfs
  3. 双重bfs(同时保证两个单调性)
  4. 双端队列bfs
  5. 优先队列bfs:推广:从优先队列第k次取出的为第k大,第k大问题用堆解决依据

\(A^*\)优化

估价函数

  1. 最短路
  2. 起点终点距离之和
posted @ 2019-07-31 15:19  a1b3c7d9  阅读(116)  评论(0编辑  收藏  举报