天天看点

python 回溯法 子集树模板 系列 —— 1、8 皇后问题

8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。

python 回溯法 子集树模板 系列 —— 1、8 皇后问题

为了简化问题,考虑到8个皇后不同行,则每一行放置一个皇后,每一行的皇后可以放置于第0、1、2、...、7列,我们认为每一行的皇后有8种状态。那么,我们只要套用子集树模板,从第0行开始,自上而下,对每一行的皇后,遍历它的8个状态即可。

python 回溯法 子集树模板 系列 —— 1、8 皇后问题