美文网首页蓝桥杯试题
优质题解:2n皇后问题

优质题解:2n皇后问题

作者: 桐桑入梦 | 来源:发表于2020-02-28 20:26 被阅读0次

原题链接:[蓝桥杯][基础练习VIP]2n皇后问题

解题思路:
首先理解八皇后,然后就是一个使用两个八皇后叠加的问题,通过多设置几个数组就可以实现2*n皇后的问题,注意定义数组记录是否访问这一行或者这一列的时候,数组的值要大一些,防止数组越界。

然后就是一个最基本的DFS就可以了。

#include<cstdio>
#include<cstring>
int a[9][9],vis1[9],vis2[9],cnt,n;
int x1[19],x2[19],y1[19],y2[19];
void DFS(int dep)
{
    if(dep==n+1) { cnt++; return ;}
    for(int i=1;i<=n;i++)
    {
        if(!vis1[i] && a[dep][i] && !x1[dep+i] && !y1[dep-i+n])
        {
            vis1[i]=1; a[dep][i]=0; x1[dep+i]=1; y1[dep-i+n]=1;
            for(int j=1;j<=n;j++)
            {
                if(!vis2[j] && a[dep][j] && !x2[dep+j] && !y2[dep-j+n])
                {
                    vis2[j]=1;a[dep][j]=0; x2[dep+j]=1; y2[dep-j+n]=1;
                    DFS(dep+1);
                    vis2[j]=0;a[dep][j]=1; x2[dep+j]=0; y2[dep-j+n]=0;
                }
            }
            vis1[i]=0; a[dep][i]=1; x1[dep+i]=0; y1[dep-i+n]=0;
        }
    }
}
int main(void)
{
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
        for(int j=1;j<=n;j++)
            scanf("%d",&a[i][j]);
    DFS(1);
    printf("%d",cnt);
    return 0;
}

相关文章

  • 优质题解:2n皇后问题

    原题链接:[蓝桥杯][基础练习VIP]2n皇后问题 解题思路:首先理解八皇后,然后就是一个使用两个八皇后叠加的问题...

  • 2n皇后问题

    题目描述: 解决方法:递归+回溯先铺上一层皇后,再铺一层

  • 第16章 抽象深度优先搜索

    1、2n皇后问题 算法分析 与n皇后问题类似,如下是n皇后问题的分析,时间复杂度 按行继续比遍历,其中col[x]...

  • 1803: 2n皇后问题

    Time Limit:1 SecMemory Limit:128 MB Submit:34Solved:26 [S...

  • 基础练习 2n皇后问题

    问题描述 给定一个n*n的棋盘,棋盘中有一些位置不能放皇后。现在要向棋盘中放入n个黑皇后和n个白皇后,使任意的两个...

  • 八皇后问题解法

    八皇后问题解法 什么事八皇后问题 国际象棋中的皇后,可以横向、纵向、斜向移动。如何在一个8X8的棋盘上放置8个皇后...

  • Leetcode 52. N-Queens II

    回溯法,非递归求 N 皇后问题解个数,Python 3 实现: 源代码已上传 Github,持续更新。 源代码已上...

  • 经典递归问题,八皇后

    此问题解法转自 Alex Yu 博客园未经询问,抱歉。如若不妥马上删除 先创建个皇后类,保存这一个皇后在一行中的具...

  • LeetCode笔记:561. Array Partition

    问题(Easy): Given an array of 2n integers, your task is to ...

  • LeetCode之N-Repeated Element in S

    问题:In a array A of size 2N, there are N+1 unique elements...

网友评论

    本文标题:优质题解:2n皇后问题

    本文链接:https://www.haomeiwen.com/subject/yeprhhtx.html