码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2018-04-20 21:58:08      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:namespace   opened   close   ==   ali   img   closed   math.h   ios   

...就是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

标签:namespace   opened   close   ==   ali   img   closed   math.h   ios   

原文地址:https://www.cnblogs.com/zquzjx/p/8893613.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!