8 皇帝问题(皇帝还是比较牛逼) - 算法

一、问题描述
有一个 8 * 8 的棋盘,和 8 个皇后,皇后的攻击规则:任意一个皇后可以攻击同一行、同一列、正反对角线上的皇后。问题:如何摆放8个皇后,可以让她们互相不攻击。
提示:一行或一列只能放一个皇后。

二、解题思路
采用深度优先遍历方式,从第0行开始,逐行查看每一列中那些位置可以摆放皇后,也就是每一行需要扫描8列,而且还需要判断当前位置和摆放过皇后的位置是否符合规则。

三、DFS(深度优先搜索)
套路:

// 参数n:问题规模
void dfs(int n){
// dfs 出口
 if(){
 ...
 return;
 }

// dfs body
处理当前内容

// dfs 递归
处理当前内容与子问题的关系

}

二叉树遍历

package com.daxiong.day6;

/** * 1 * 2 3 * 4 5 6 7 * */
public class TowTree {

    private static int[] tree = {0,1,2,3,4,5,6,7};  // 第0为站位,不参与实际问题

    public static void main(String[] args) {
        dfs(1);
    }

    // 二叉树前序遍历
    public static void dfs(int root){

        if(root*2 >= 8){
            System.out.println(tree[root]);
            return;
        }
        System.out.println(tree[root]);
        dfs(root*2);   // 左子树
        dfs(root*2+1); // 右子树
    }

}

四、代码实现

package com.daxiong.day6;

/** * 8 皇后问题 * */
public class EightQueen {

    // 8 个皇后
    private static int SIZE = 8;
    // 存放规则:索引(0-7)表示行,索引对应的值(0-8)表示该行可以存放皇后的列值,以此构建一个类似二位数组
    private static int[] queen = new int[SIZE];
    // 方案数
    private static int step = 0;

    public static void main(String[] args) {
        dfs(0);
    }

    /** * @fun 判断当前行可以存放皇后的列 * @param key : 当前行(可以看作座标中的 X1) * @param value : 当前行对应的列值(可以看作座标中X1对应的值Y1) * @return : 当前行对应的列是否可以存放皇后 */
    public static boolean isOk(int key, int value) {
        for (int i = 0; i < key; i++) {
            if (i == key || queen[i] == value || (i - key == queen[i] - value) || (key - i == queen[i] - value)) {
                return false;
            }
        }
        return true;
    }

    /** * @fun dfs,深度遍历递归函数 * @param row : 行扫描,问题规模 */
    public static void dfs(int row) {
        if (row == SIZE) {
            step++;
            print(step);
            return;
        }

        for (int i = 0; i < SIZE; i++) {
            if (isOk(row, i)) {
                queen[row] = i;
                dfs(row + 1);
            }
        }
    }

    /** * @fun 打印 8 皇后可行方案 * @param step : 第几个方案 */
    public static void print(int step) {
        System.out.println("方案(" + step + "):");
        for (int i = 0; i < SIZE; i++) {
            for (int j = 0; j < SIZE; j++) {
                if (queen[i] == j) { // 皇后位置
                    System.out.print(" @ ");
                } else { // 非皇后
                    System.out.print(" * ");
                }
            }
            System.out.println();
        }
    }

}

五、答案
共有 92 中方案:

方案(1):
 @  * *  * *  * *  * 
 * *  * *  @  * *  * 
 * *  * *  * *  *  @ 
 * *  * *  * @ *  * 
 * *  @  * *  * *  * 
 * *  * *  * *  @  * 
 * @ *  * *  * *  * 
 * *  * @ *  * *  * 
方案(2):
 @  * *  * *  * *  * 
 * *  * *  * @ *  * 
 * *  * *  * *  *  @ 
 * *  @  * *  * *  * 
 * *  * *  * *  @  * 
 * *  * @ *  * *  * 
 * @ *  * *  * *  * 
 * *  * *  @  * *  * 
方案(3):
 @  * *  * *  * *  * 
 * *  * *  * *  @  * 
 * *  * @ *  * *  * 
 * *  * *  * @ *  * 
 * *  * *  * *  *  @ 
 * @ *  * *  * *  * 
 * *  * *  @  * *  * 
 * *  @  * *  * *  * 
方案(4):
 @  * *  * *  * *  * 
 * *  * *  * *  @  * 
 * *  * *  @  * *  * 
 * *  * *  * *  *  @ 
 * @ *  * *  * *  * 
 * *  * @ *  * *  * 
 * *  * *  * @ *  * 
 * *  @  * *  * *  * 
方案(5):
 * @ *  * *  * *  * 
 * *  * @ *  * *  * 
 * *  * *  * @ *  * 
 * *  * *  * *  *  @ 
 * *  @  * *  * *  * 
 @  * *  * *  * *  * 
 * *  * *  * *  @  * 
 * *  * *  @  * *  * 
方案(6):
 * @ *  * *  * *  * 
 * *  * *  @  * *  * 
 * *  * *  * *  @  * 
 @  * *  * *  * *  * 
 * *  @  * *  * *  * 
 * *  * *  * *  *  @ 
 * *  * *  * @ *  * 
 * *  * @ *  * *  * 
方案(7):
 * @ *  * *  * *  * 
 * *  * *  @  * *  * 
 * *  * *  * *  @  * 
 * *  * @ *  * *  * 
 @  * *  * *  * *  * 
 * *  * *  * *  *  @ 
 * *  * *  * @ *  * 
 * *  @  * *  * *  * 
方案(8):
 * @ *  * *  * *  * 
 * *  * *  * @ *  * 
 @  * *  * *  * *  * 
 * *  * *  * *  @  * 
 * *  * @ *  * *  * 
 * *  * *  * *  *  @ 
 * *  @  * *  * *  * 
 * *  * *  @  * *  * 
方案(9):
 * @ *  * *  * *  * 
 * *  * *  * @ *  * 
 * *  * *  * *  *  @ 
 * *  @  * *  * *  * 
 @  * *  * *  * *  * 
 * *  * @ *  * *  * 
 * *  * *  * *  @  * 
 * *  * *  @  * *  * 
方案(10):
 * @ *  * *  * *  * 
 * *  * *  * *  @  * 
 * *  @  * *  * *  * 
 * *  * *  * @ *  * 
 * *  * *  * *  *  @ 
 * *  * *  @  * *  * 
 @  * *  * *  * *  * 
 * *  * @ *  * *  * 
方案(11):
 * @ *  * *  * *  * 
 * *  * *  * *  @  * 
 * *  * *  @  * *  * 
 * *  * *  * *  *  @ 
 @  * *  * *  * *  * 
 * *  * @ *  * *  * 
 * *  * *  * @ *  * 
 * *  @  * *  * *  * 
方案(12):
 * @ *  * *  * *  * 
 * *  * *  * *  *  @ 
 * *  * *  * @ *  * 
 @  * *  * *  * *  * 
 * *  @  * *  * *  * 
 * *  * *  @  * *  * 
 * *  * *  * *  @  * 
 * *  * @ *  * *  * 
方案(13):
 * *  @  * *  * *  * 
 @  * *  * *  * *  * 
 * *  * *  * *  @  * 
 * *  * *  @  * *  * 
 * *  * *  * *  *  @ 
 * @ *  * *  * *  * 
 * *  * @ *  * *  * 
 * *  * *  * @ *  * 
方案(14):
 * *  @  * *  * *  * 
 * *  * *  @  * *  * 
 * @ *  * *  * *  * 
 * *  * *  * *  *  @ 
 @  * *  * *  * *  * 
 * *  * *  * *  @  * 
 * *  * @ *  * *  * 
 * *  * *  * @ *  * 
方案(15):
 * *  @  * *  * *  * 
 * *  * *  @  * *  * 
 * @ *  * *  * *  * 
 * *  * *  * *  *  @ 
 * *  * *  * @ *  * 
 * *  * @ *  * *  * 
 * *  * *  * *  @  * 
 @  * *  * *  * *  * 
方案(16):
 * *  @  * *  * *  * 
 * *  * *  @  * *  * 
 * *  * *  * *  @  * 
 @  * *  * *  * *  * 
 * *  * @ *  * *  * 
 * @ *  * *  * *  * 
 * *  * *  * *  *  @ 
 * *  * *  * @ *  * 
方案(17):
 * *  @  * *  * *  * 
 * *  * *  @  * *  * 
 * *  * *  * *  *  @ 
 * *  * @ *  * *  * 
 @  * *  * *  * *  * 
 * *  * *  * *  @  * 
 * @ *  * *  * *  * 
 * *  * *  * @ *  * 
方案(18):
 * *  @  * *  * *  * 
 * *  * *  * @ *  * 
 * @ *  * *  * *  * 
 * *  * *  @  * *  * 
 * *  * *  * *  *  @ 
 @  * *  * *  * *  * 
 * *  * *  * *  @  * 
 * *  * @ *  * *  * 
方案(19):
 * *  @  * *  * *  * 
 * *  * *  * @ *  * 
 * @ *  * *  * *  * 
 * *  * *  * *  @  * 
 @  * *  * *  * *  * 
 * *  * @ *  * *  * 
 * *  * *  * *  *  @ 
 * *  * *  @  * *  * 
方案(20):
 * *  @  * *  * *  * 
 * *  * *  * @ *  * 
 * @ *  * *  * *  * 
 * *  * *  * *  @  * 
 * *  * *  @  * *  * 
 @  * *  * *  * *  * 
 * *  * *  * *  *  @ 
 * *  * @ *  * *  * 
方案(21):
 * *  @  * *  * *  * 
 * *  * *  * @ *  * 
 * *  * @ *  * *  * 
 @  * *  * *  * *  * 
 * *  * *  * *  *  @ 
 * *  * *  @  * *  * 
 * *  * *  * *  @  * 
 * @ *  * *  * *  * 
方案(22):
 * *  @  * *  * *  * 
 * *  * *  * @ *  * 
 * *  * @ *  * *  * 
 * @ *  * *  * *  * 
 * *  * *  * *  *  @ 
 * *  * *  @  * *  * 
 * *  * *  * *  @  * 
 @  * *  * *  * *  * 
方案(23):
 * *  @  * *  * *  * 
 * *  * *  * @ *  * 
 * *  * *  * *  *  @ 
 @  * *  * *  * *  * 
 * *  * @ *  * *  * 
 * *  * *  * *  @  * 
 * *  * *  @  * *  * 
 * @ *  * *  * *  * 
方案(24):
 * *  @  * *  * *  * 
 * *  * *  * @ *  * 
 * *  * *  * *  *  @ 
 @  * *  * *  * *  * 
 * *  * *  @  * *  * 
 * *  * *  * *  @  * 
 * @ *  * *  * *  * 
 * *  * @ *  * *  * 
方案(25):
 * *  @  * *  * *  * 
 * *  * *  * @ *  * 
 * *  * *  * *  *  @ 
 * @ *  * *  * *  * 
 * *  * @ *  * *  * 
 @  * *  * *  * *  * 
 * *  * *  * *  @  * 
 * *  * *  @  * *  * 
方案(26):
 * *  @  * *  * *  * 
 * *  * *  * *  @  * 
 * @ *  * *  * *  * 
 * *  * *  * *  *  @ 
 * *  * *  @  * *  * 
 @  * *  * *  * *  * 
 * *  * @ *  * *  * 
 * *  * *  * @ *  * 
方案(27):
 * *  @  * *  * *  * 
 * *  * *  * *  @  * 
 * @ *  * *  * *  * 
 * *  * *  * *  *  @ 
 * *  * *  * @ *  * 
 * *  * @ *  * *  * 
 @  * *  * *  * *  * 
 * *  * *  @  * *  * 
方案(28):
 * *  @  * *  * *  * 
 * *  * *  * *  *  @ 
 * *  * @ *  * *  * 
 * *  * *  * *  @  * 
 @  * *  * *  * *  * 
 * *  * *  * @ *  * 
 * @ *  * *  * *  * 
 * *  * *  @  * *  * 
方案(29):
 * *  * @ *  * *  * 
 @  * *  * *  * *  * 
 * *  * *  @  * *  * 
 * *  * *  * *  *  @ 
 * @ *  * *  * *  * 
 * *  * *  * *  @  * 
 * *  @  * *  * *  * 
 * *  * *  * @ *  * 
方案(30):
 * *  * @ *  * *  * 
 @  * *  * *  * *  * 
 * *  * *  @  * *  * 
 * *  * *  * *  *  @ 
 * *  * *  * @ *  * 
 * *  @  * *  * *  * 
 * *  * *  * *  @  * 
 * @ *  * *  * *  * 
方案(31):
 * *  * @ *  * *  * 
 * @ *  * *  * *  * 
 * *  * *  @  * *  * 
 * *  * *  * *  *  @ 
 * *  * *  * @ *  * 
 @  * *  * *  * *  * 
 * *  @  * *  * *  * 
 * *  * *  * *  @  * 
方案(32):
 * *  * @ *  * *  * 
 * @ *  * *  * *  * 
 * *  * *  * *  @  * 
 * *  @  * *  * *  * 
 * *  * *  * @ *  * 
 * *  * *  * *  *  @ 
 @  * *  * *  * *  * 
 * *  * *  @  * *  * 
方案(33):
 * *  * @ *  * *  * 
 * @ *  * *  * *  * 
 * *  * *  * *  @  * 
 * *  @  * *  * *  * 
 * *  * *  * @ *  * 
 * *  * *  * *  *  @ 
 * *  * *  @  * *  * 
 @  * *  * *  * *  * 
方案(34):
 * *  * @ *  * *  * 
 * @ *  * *  * *  * 
 * *  * *  * *  @  * 
 * *  * *  @  * *  * 
 @  * *  * *  * *  * 
 * *  * *  * *  *  @ 
 * *  * *  * @ *  * 
 * *  @  * *  * *  * 
方案(35):
 * *  * @ *  * *  * 
 * @ *  * *  * *  * 
 * *  * *  * *  *  @ 
 * *  * *  @  * *  * 
 * *  * *  * *  @  * 
 @  * *  * *  * *  * 
 * *  @  * *  * *  * 
 * *  * *  * @ *  * 
方案(36):
 * *  * @ *  * *  * 
 * @ *  * *  * *  * 
 * *  * *  * *  *  @ 
 * *  * *  * @ *  * 
 @  * *  * *  * *  * 
 * *  @  * *  * *  * 
 * *  * *  @  * *  * 
 * *  * *  * *  @  * 
方案(37):
 * *  * @ *  * *  * 
 * *  * *  * @ *  * 
 @  * *  * *  * *  * 
 * *  * *  @  * *  * 
 * @ *  * *  * *  * 
 * *  * *  * *  *  @ 
 * *  @  * *  * *  * 
 * *  * *  * *  @  * 
方案(38):
 * *  * @ *  * *  * 
 * *  * *  * @ *  * 
 * *  * *  * *  *  @ 
 * @ *  * *  * *  * 
 * *  * *  * *  @  * 
 @  * *  * *  * *  * 
 * *  @  * *  * *  * 
 * *  * *  @  * *  * 
方案(39):
 * *  * @ *  * *  * 
 * *  * *  * @ *  * 
 * *  * *  * *  *  @ 
 * *  @  * *  * *  * 
 @  * *  * *  * *  * 
 * *  * *  * *  @  * 
 * *  * *  @  * *  * 
 * @ *  * *  * *  * 
方案(40):
 * *  * @ *  * *  * 
 * *  * *  * *  @  * 
 @  * *  * *  * *  * 
 * *  * *  * *  *  @ 
 * *  * *  @  * *  * 
 * @ *  * *  * *  * 
 * *  * *  * @ *  * 
 * *  @  * *  * *  * 
方案(41):
 * *  * @ *  * *  * 
 * *  * *  * *  @  * 
 * *  @  * *  * *  * 
 * *  * *  * *  *  @ 
 * @ *  * *  * *  * 
 * *  * *  @  * *  * 
 @  * *  * *  * *  * 
 * *  * *  * @ *  * 
方案(42):
 * *  * @ *  * *  * 
 * *  * *  * *  @  * 
 * *  * *  @  * *  * 
 * @ *  * *  * *  * 
 * *  * *  * @ *  * 
 @  * *  * *  * *  * 
 * *  @  * *  * *  * 
 * *  * *  * *  *  @ 
方案(43):
 * *  * @ *  * *  * 
 * *  * *  * *  @  * 
 * *  * *  @  * *  * 
 * *  @  * *  * *  * 
 @  * *  * *  * *  * 
 * *  * *  * @ *  * 
 * *  * *  * *  *  @ 
 * @ *  * *  * *  * 
方案(44):
 * *  * @ *  * *  * 
 * *  * *  * *  *  @ 
 @  * *  * *  * *  * 
 * *  @  * *  * *  * 
 * *  * *  * @ *  * 
 * @ *  * *  * *  * 
 * *  * *  * *  @  * 
 * *  * *  @  * *  * 
方案(45):
 * *  * @ *  * *  * 
 * *  * *  * *  *  @ 
 @  * *  * *  * *  * 
 * *  * *  @  * *  * 
 * *  * *  * *  @  * 
 * @ *  * *  * *  * 
 * *  * *  * @ *  * 
 * *  @  * *  * *  * 
方案(46):
 * *  * @ *  * *  * 
 * *  * *  * *  *  @ 
 * *  * *  @  * *  * 
 * *  @  * *  * *  * 
 @  * *  * *  * *  * 
 * *  * *  * *  @  * 
 * @ *  * *  * *  * 
 * *  * *  * @ *  * 
方案(47):
 * *  * *  @  * *  * 
 @  * *  * *  * *  * 
 * *  * @ *  * *  * 
 * *  * *  * @ *  * 
 * *  * *  * *  *  @ 
 * @ *  * *  * *  * 
 * *  * *  * *  @  * 
 * *  @  * *  * *  * 
方案(48):
 * *  * *  @  * *  * 
 @  * *  * *  * *  * 
 * *  * *  * *  *  @ 
 * *  * @ *  * *  * 
 * @ *  * *  * *  * 
 * *  * *  * *  @  * 
 * *  @  * *  * *  * 
 * *  * *  * @ *  * 
方案(49):
 * *  * *  @  * *  * 
 @  * *  * *  * *  * 
 * *  * *  * *  *  @ 
 * *  * *  * @ *  * 
 * *  @  * *  * *  * 
 * *  * *  * *  @  * 
 * @ *  * *  * *  * 
 * *  * @ *  * *  * 
方案(50):
 * *  * *  @  * *  * 
 * @ *  * *  * *  * 
 * *  * @ *  * *  * 
 * *  * *  * @ *  * 
 * *  * *  * *  *  @ 
 * *  @  * *  * *  * 
 @  * *  * *  * *  * 
 * *  * *  * *  @  * 
方案(51):
 * *  * *  @  * *  * 
 * @ *  * *  * *  * 
 * *  * @ *  * *  * 
 * *  * *  * *  @  * 
 * *  @  * *  * *  * 
 * *  * *  * *  *  @ 
 * *  * *  * @ *  * 
 @  * *  * *  * *  * 
方案(52):
 * *  * *  @  * *  * 
 * @ *  * *  * *  * 
 * *  * *  * @ *  * 
 @  * *  * *  * *  * 
 * *  * *  * *  @  * 
 * *  * @ *  * *  * 
 * *  * *  * *  *  @ 
 * *  @  * *  * *  * 
方案(53):
 * *  * *  @  * *  * 
 * @ *  * *  * *  * 
 * *  * *  * *  *  @ 
 @  * *  * *  * *  * 
 * *  * @ *  * *  * 
 * *  * *  * *  @  * 
 * *  @  * *  * *  * 
 * *  * *  * @ *  * 
方案(54):
 * *  * *  @  * *  * 
 * *  @  * *  * *  * 
 @  * *  * *  * *  * 
 * *  * *  * @ *  * 
 * *  * *  * *  *  @ 
 * @ *  * *  * *  * 
 * *  * @ *  * *  * 
 * *  * *  * *  @  * 
方案(55):
 * *  * *  @  * *  * 
 * *  @  * *  * *  * 
 @  * *  * *  * *  * 
 * *  * *  * *  @  * 
 * @ *  * *  * *  * 
 * *  * *  * *  *  @ 
 * *  * *  * @ *  * 
 * *  * @ *  * *  * 
方案(56):
 * *  * *  @  * *  * 
 * *  @  * *  * *  * 
 * *  * *  * *  *  @ 
 * *  * @ *  * *  * 
 * *  * *  * *  @  * 
 @  * *  * *  * *  * 
 * *  * *  * @ *  * 
 * @ *  * *  * *  * 
方案(57):
 * *  * *  @  * *  * 
 * *  * *  * *  @  * 
 @  * *  * *  * *  * 
 * *  @  * *  * *  * 
 * *  * *  * *  *  @ 
 * *  * *  * @ *  * 
 * *  * @ *  * *  * 
 * @ *  * *  * *  * 
方案(58):
 * *  * *  @  * *  * 
 * *  * *  * *  @  * 
 @  * *  * *  * *  * 
 * *  * @ *  * *  * 
 * @ *  * *  * *  * 
 * *  * *  * *  *  @ 
 * *  * *  * @ *  * 
 * *  @  * *  * *  * 
方案(59):
 * *  * *  @  * *  * 
 * *  * *  * *  @  * 
 * @ *  * *  * *  * 
 * *  * @ *  * *  * 
 * *  * *  * *  *  @ 
 @  * *  * *  * *  * 
 * *  @  * *  * *  * 
 * *  * *  * @ *  * 
方案(60):
 * *  * *  @  * *  * 
 * *  * *  * *  @  * 
 * @ *  * *  * *  * 
 * *  * *  * @ *  * 
 * *  @  * *  * *  * 
 @  * *  * *  * *  * 
 * *  * @ *  * *  * 
 * *  * *  * *  *  @ 
方案(61):
 * *  * *  @  * *  * 
 * *  * *  * *  @  * 
 * @ *  * *  * *  * 
 * *  * *  * @ *  * 
 * *  @  * *  * *  * 
 @  * *  * *  * *  * 
 * *  * *  * *  *  @ 
 * *  * @ *  * *  * 
方案(62):
 * *  * *  @  * *  * 
 * *  * *  * *  @  * 
 * *  * @ *  * *  * 
 @  * *  * *  * *  * 
 * *  @  * *  * *  * 
 * *  * *  * *  *  @ 
 * *  * *  * @ *  * 
 * @ *  * *  * *  * 
方案(63):
 * *  * *  @  * *  * 
 * *  * *  * *  *  @ 
 * *  * @ *  * *  * 
 @  * *  * *  * *  * 
 * *  @  * *  * *  * 
 * *  * *  * @ *  * 
 * @ *  * *  * *  * 
 * *  * *  * *  @  * 
方案(64):
 * *  * *  @  * *  * 
 * *  * *  * *  *  @ 
 * *  * @ *  * *  * 
 @  * *  * *  * *  * 
 * *  * *  * *  @  * 
 * @ *  * *  * *  * 
 * *  * *  * @ *  * 
 * *  @  * *  * *  * 
方案(65):
 * *  * *  * @ *  * 
 @  * *  * *  * *  * 
 * *  * *  @  * *  * 
 * @ *  * *  * *  * 
 * *  * *  * *  *  @ 
 * *  @  * *  * *  * 
 * *  * *  * *  @  * 
 * *  * @ *  * *  * 
方案(66):
 * *  * *  * @ *  * 
 * @ *  * *  * *  * 
 * *  * *  * *  @  * 
 @  * *  * *  * *  * 
 * *  @  * *  * *  * 
 * *  * *  @  * *  * 
 * *  * *  * *  *  @ 
 * *  * @ *  * *  * 
方案(67):
 * *  * *  * @ *  * 
 * @ *  * *  * *  * 
 * *  * *  * *  @  * 
 @  * *  * *  * *  * 
 * *  * @ *  * *  * 
 * *  * *  * *  *  @ 
 * *  * *  @  * *  * 
 * *  @  * *  * *  * 
方案(68):
 * *  * *  * @ *  * 
 * *  @  * *  * *  * 
 @  * *  * *  * *  * 
 * *  * *  * *  @  * 
 * *  * *  @  * *  * 
 * *  * *  * *  *  @ 
 * @ *  * *  * *  * 
 * *  * @ *  * *  * 
方案(69):
 * *  * *  * @ *  * 
 * *  @  * *  * *  * 
 @  * *  * *  * *  * 
 * *  * *  * *  *  @ 
 * *  * @ *  * *  * 
 * @ *  * *  * *  * 
 * *  * *  * *  @  * 
 * *  * *  @  * *  * 
方案(70):
 * *  * *  * @ *  * 
 * *  @  * *  * *  * 
 @  * *  * *  * *  * 
 * *  * *  * *  *  @ 
 * *  * *  @  * *  * 
 * @ *  * *  * *  * 
 * *  * @ *  * *  * 
 * *  * *  * *  @  * 
方案(71):
 * *  * *  * @ *  * 
 * *  @  * *  * *  * 
 * *  * *  @  * *  * 
 * *  * *  * *  @  * 
 @  * *  * *  * *  * 
 * *  * @ *  * *  * 
 * @ *  * *  * *  * 
 * *  * *  * *  *  @ 
方案(72):
 * *  * *  * @ *  * 
 * *  @  * *  * *  * 
 * *  * *  @  * *  * 
 * *  * *  * *  *  @ 
 @  * *  * *  * *  * 
 * *  * @ *  * *  * 
 * @ *  * *  * *  * 
 * *  * *  * *  @  * 
方案(73):
 * *  * *  * @ *  * 
 * *  @  * *  * *  * 
 * *  * *  * *  @  * 
 * @ *  * *  * *  * 
 * *  * @ *  * *  * 
 * *  * *  * *  *  @ 
 @  * *  * *  * *  * 
 * *  * *  @  * *  * 
方案(74):
 * *  * *  * @ *  * 
 * *  @  * *  * *  * 
 * *  * *  * *  @  * 
 * @ *  * *  * *  * 
 * *  * *  * *  *  @ 
 * *  * *  @  * *  * 
 @  * *  * *  * *  * 
 * *  * @ *  * *  * 
方案(75):
 * *  * *  * @ *  * 
 * *  @  * *  * *  * 
 * *  * *  * *  @  * 
 * *  * @ *  * *  * 
 @  * *  * *  * *  * 
 * *  * *  * *  *  @ 
 * @ *  * *  * *  * 
 * *  * *  @  * *  * 
方案(76):
 * *  * *  * @ *  * 
 * *  * @ *  * *  * 
 @  * *  * *  * *  * 
 * *  * *  @  * *  * 
 * *  * *  * *  *  @ 
 * @ *  * *  * *  * 
 * *  * *  * *  @  * 
 * *  @  * *  * *  * 
方案(77):
 * *  * *  * @ *  * 
 * *  * @ *  * *  * 
 * @ *  * *  * *  * 
 * *  * *  * *  *  @ 
 * *  * *  @  * *  * 
 * *  * *  * *  @  * 
 @  * *  * *  * *  * 
 * *  @  * *  * *  * 
方案(78):
 * *  * *  * @ *  * 
 * *  * @ *  * *  * 
 * *  * *  * *  @  * 
 @  * *  * *  * *  * 
 * *  @  * *  * *  * 
 * *  * *  @  * *  * 
 * @ *  * *  * *  * 
 * *  * *  * *  *  @ 
方案(79):
 * *  * *  * @ *  * 
 * *  * @ *  * *  * 
 * *  * *  * *  @  * 
 @  * *  * *  * *  * 
 * *  * *  * *  *  @ 
 * @ *  * *  * *  * 
 * *  * *  @  * *  * 
 * *  @  * *  * *  * 
方案(80):
 * *  * *  * @ *  * 
 * *  * *  * *  *  @ 
 * @ *  * *  * *  * 
 * *  * @ *  * *  * 
 @  * *  * *  * *  * 
 * *  * *  * *  @  * 
 * *  * *  @  * *  * 
 * *  @  * *  * *  * 
方案(81):
 * *  * *  * *  @  * 
 @  * *  * *  * *  * 
 * *  @  * *  * *  * 
 * *  * *  * *  *  @ 
 * *  * *  * @ *  * 
 * *  * @ *  * *  * 
 * @ *  * *  * *  * 
 * *  * *  @  * *  * 
方案(82):
 * *  * *  * *  @  * 
 * @ *  * *  * *  * 
 * *  * @ *  * *  * 
 @  * *  * *  * *  * 
 * *  * *  * *  *  @ 
 * *  * *  @  * *  * 
 * *  @  * *  * *  * 
 * *  * *  * @ *  * 
方案(83):
 * *  * *  * *  @  * 
 * @ *  * *  * *  * 
 * *  * *  * @ *  * 
 * *  @  * *  * *  * 
 @  * *  * *  * *  * 
 * *  * @ *  * *  * 
 * *  * *  * *  *  @ 
 * *  * *  @  * *  * 
方案(84):
 * *  * *  * *  @  * 
 * *  @  * *  * *  * 
 @  * *  * *  * *  * 
 * *  * *  * @ *  * 
 * *  * *  * *  *  @ 
 * *  * *  @  * *  * 
 * @ *  * *  * *  * 
 * *  * @ *  * *  * 
方案(85):
 * *  * *  * *  @  * 
 * *  @  * *  * *  * 
 * *  * *  * *  *  @ 
 * @ *  * *  * *  * 
 * *  * *  @  * *  * 
 @  * *  * *  * *  * 
 * *  * *  * @ *  * 
 * *  * @ *  * *  * 
方案(86):
 * *  * *  * *  @  * 
 * *  * @ *  * *  * 
 * @ *  * *  * *  * 
 * *  * *  @  * *  * 
 * *  * *  * *  *  @ 
 @  * *  * *  * *  * 
 * *  @  * *  * *  * 
 * *  * *  * @ *  * 
方案(87):
 * *  * *  * *  @  * 
 * *  * @ *  * *  * 
 * @ *  * *  * *  * 
 * *  * *  * *  *  @ 
 * *  * *  * @ *  * 
 @  * *  * *  * *  * 
 * *  @  * *  * *  * 
 * *  * *  @  * *  * 
方案(88):
 * *  * *  * *  @  * 
 * *  * *  @  * *  * 
 * *  @  * *  * *  * 
 @  * *  * *  * *  * 
 * *  * *  * @ *  * 
 * *  * *  * *  *  @ 
 * @ *  * *  * *  * 
 * *  * @ *  * *  * 
方案(89):
 * *  * *  * *  *  @ 
 * @ *  * *  * *  * 
 * *  * @ *  * *  * 
 @  * *  * *  * *  * 
 * *  * *  * *  @  * 
 * *  * *  @  * *  * 
 * *  @  * *  * *  * 
 * *  * *  * @ *  * 
方案(90):
 * *  * *  * *  *  @ 
 * @ *  * *  * *  * 
 * *  * *  @  * *  * 
 * *  @  * *  * *  * 
 @  * *  * *  * *  * 
 * *  * *  * *  @  * 
 * *  * @ *  * *  * 
 * *  * *  * @ *  * 
方案(91):
 * *  * *  * *  *  @ 
 * *  @  * *  * *  * 
 @  * *  * *  * *  * 
 * *  * *  * @ *  * 
 * @ *  * *  * *  * 
 * *  * *  @  * *  * 
 * *  * *  * *  @  * 
 * *  * @ *  * *  * 
方案(92):
 * *  * *  * *  *  @ 
 * *  * @ *  * *  * 
 @  * *  * *  * *  * 
 * *  @  * *  * *  * 
 * *  * *  * @ *  * 
 * @ *  * *  * *  * 
 * *  * *  * *  @  * 
 * *  * *  @  * *  * 
点赞