跳转至

Chapter 06 : Backtracking

约 332 个字 1 张图片 预计阅读时间 2 分钟

Abstract

Abstract

回溯算法是一个非常常用的算法,在 OI 中是一个非常基本的内容,Bruce 和夏神都是一起打过 NOIP 的所以这里就不多赘述(Bruce 想偷懒),可转至:夏神整理的资源

需要补充的 \(\alpha-\beta\) 剪枝,这篇知乎讲的非常清楚:α-β Pruning,还有 OI Wiki


Homework

Question 01

Given the following game tree, which node in the right subtree is the first node to be pruned with \(\alpha-\beta\) pruning algorithm?

  • A. d
  • B. b
  • C. c
  • D. a
Answer

A. d。类似这样的 \(\alpha-\beta\) 剪枝题,谨记一点,一开始非叶子节点是未知的,我们是先找到一条路径(即最左边的这个 65)再以此基础看其他有没有可能剪枝的

在这里,我们必须先找到第五个叶子节点 65,同时 a 是肯定需要访问的,不然我们不会知道它的父亲是多少,这时其实就已经出问题了,我们可以看到 a 的父亲已经比左子树(即第二层的 68)小了,而 a 的爷爷又是通过 min 取得(这意味着 a 的爷爷必然 \(\leq 65\)),那么最终的根必然为 68 而非 a 的爷爷,所以右侧从 d 开始的所有搜索都是无意义的,可以剪枝

评论