[USACO 6.5.5]Checker Challerge

Posted albertxwz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[USACO 6.5.5]Checker Challerge相关的知识,希望对你有一定的参考价值。

题目大意

  n皇后问题

题解

  轻微的剪枝就过了.

  HINT4不会写...

代码

/*
TASK:checker
LANG:C++
*/
#include <cstdio>
#include <cstring>

using namespace std;

bool col[15], zd[30], fd[30];
int prow[15];
int ans, n;

void dfs(int row)
{
    if (row == n)
    {
        ans++;
        if (ans <= 3)
        {
            for (int i = 0; i < n-1; ++i) printf("%d ", prow[i]);
            printf("%d\n", prow[n-1]);
        }
        return;
    }
    for (int i = 0; i < n; ++i)
        if (!col[i] && !zd[row+i] && !fd[row+n-i-1])
        {
            col[i] = zd[row+i] = fd[row+n-i-1] = true;
            prow[row] = i + 1;
            dfs(row + 1);
            col[i] = zd[row+i] = fd[row+n-i-1] = false;
        }
}

int main()
{
    freopen("checker.in", "r", stdin);
    freopen("checker.out", "w", stdout);
    scanf("%d", &n);
    memset(col, 0, sizeof(col));
    memset(zd, 0, sizeof(zd));
    memset(fd, 0, sizeof(fd));
    ans = 0;
    dfs(0);
    printf("%d\n", ans);
    return 0;
}

 

以上是关于[USACO 6.5.5]Checker Challerge的主要内容,如果未能解决你的问题,请参考以下文章

洛谷P1219 [USACO1.5]八皇后 Checker Challenge(回溯深搜)

USACO training course Checker Challenge N皇后 /// oj10125

洛谷 P1219 [USACO1.5]八皇后 Checker Challenge(Java版)

让你的checker出现在clang的checker list中

第七章 鼠标(CHECKER2)

第七章 鼠标(CHECKER1)