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

Posted _Jessie

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了USACO training course Checker Challenge N皇后 /// oj10125相关的知识,希望对你有一定的参考价值。

...就是N皇后

输出前三种可能排序

输出所有可能排序的方法数

 

vis[0][i]为i点是否已用

vis[1][m+i]为i点副对角线是否已用  m+i 为从左至右第 m+i 条副对角线

vis[1][m+n-i]为i点主对角线是否已用 m+n-i 为从右至左第 m+n-i 条主对角线

技术分享图片
#include<iostream>
#include<algorithm>
#include<stdio.h>
#include<cstring>
#include<math.h>
using namespace std;
int n,cnt;
int ans[100],vis[5][50];
void DFS(int m)
{
    if(m==n+1)
    {
        cnt++;
        if(cnt<=3)
        {
            for(int i=1;i<n;i++)
                printf("%d ",ans[i]);
            printf("%d\n",ans[n]);
        }
        return ;
    }
    for(int i=1;i<=n;i++)
    {
        if(!vis[0][i]&&!vis[1][m+i]&&!vis[2][m-i+n])
        {
            vis[0][i]=vis[1][m+i]=vis[2][m-i+n]=1;
            ans[m]=i; DFS(m+1);
            vis[0][i]=vis[1][m+i]=vis[2][m-i+n]=0;
        }
    }
}
int main()
{
    while(~scanf("%d",&n))
    {
        memset(ans,0,sizeof(ans));
        cnt=0; DFS(1);
        printf("%d\n",cnt);
    }

    return 0;
}
View Code

 

以上是关于USACO training course Checker Challenge N皇后 /// oj10125的主要内容,如果未能解决你的问题,请参考以下文章

USACO 1.3Ski Course Design

USACO 1.3 Ski Course Design

[题解]USACO 1.3 Ski Course Design

[USACO07OCT]障碍路线Obstacle Course

[USACO14JAN]滑雪等级Ski Course Rating

洛谷 P1649 [USACO07OCT]障碍路线Obstacle Course