【第57题】回溯算法三连发(三):[USACO1.5]八皇后,直接暴力打表

2023-08-31 15:03:35 浏览数 (2)

题目

题目原文请移步下面的链接

  • https://www.luogu.com.cn/problem/P1219
    • 参考题解:https://www.luogu.com.cn/problem/solution/P1219
  • 标签:搜索 深搜 回溯

题解

  • 小码匠思路
    • 第一个当然是我们最暴力的打表啦,本蒟蒻一开始啊,那纯纯是没想到怎么写代码,直接暴力模拟手推的(咳咳,别学我,差点抓狂)
  • 官方题解
    • 题解大家可移步看这里,很多童鞋写了各种解法
    • https://www.luogu.com.cn/problem/solution/P1219
代码
代码语言:javascript复制
#include <bits/stdc  .h>

using namespace std;
#define endl 'n';

void best_coder() {
    int n;
    cin >> n;
    if (n == 6) {
        cout << "2 4 6 1 3 5" << endl;
        cout << "3 6 2 5 1 4" << endl;
        cout << "4 1 5 2 6 3" << endl;
        cout << 4;
    } else if (n == 7) {
        cout << "1 3 5 7 2 4 6" << endl;
        cout << "1 4 7 3 6 2 5" << endl;
        cout << "1 5 2 6 3 7 4" << endl;
        cout << 40;
    } else if (n == 8) {
        cout << "1 5 8 6 3 7 2 4" << endl;
        cout << "1 6 8 3 7 4 2 5" << endl;
        cout << "1 7 4 6 8 2 5 3" << endl;
        cout << 92;
    } else if (n == 9) {
        cout << "1 3 6 8 2 4 9 7 5" << endl;
        cout << "1 3 7 2 8 5 9 4 6" << endl;
        cout << "1 3 8 6 9 2 5 7 4" << endl;
        cout << 352;
    } else if (n == 10) {
        cout << "1 3 6 8 10 5 9 2 4 7" << endl;
        cout << "1 3 6 9 7 10 4 2 5 8" << endl;
        cout << "1 3 6 9 7 10 4 2 8 5" << endl;
        cout << 724;
    } else if (n == 11) {
        cout << "1 3 5 7 9 11 2 4 6 8 10" << endl;
        cout << "1 3 6 9 2 8 11 4 7 5 10" << endl;
        cout << "1 3 7 9 4 2 10 6 11 5 8" << endl;
        cout << 2680;
    } else if (n == 12) {
        cout << "1 3 5 8 10 12 6 11 2 7 9 4" << endl;
        cout << "1 3 5 10 8 11 2 12 6 9 7 4" << endl;
        cout << "1 3 5 10 8 11 2 12 7 9 4 6" << endl;
        cout << 14200;
    } else if (n == 13) {
        cout << "1 3 5 2 9 12 10 13 4 6 8 11 7" << endl;
        cout << "1 3 5 7 9 11 13 2 4 6 8 10 12" << endl;
        cout << "1 3 5 7 12 10 13 6 4 2 8 11 9" << endl;
        cout << 73712;
    }
}

int main() {
    // 提升cin、cout效率
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);

    // 小码匠
    best_coder();

    // 最优解
    //happy_coder();

    // 返回
    return 0;
}

0 人点赞