首页 > 其他分享 >N-皇后问题

N-皇后问题

时间:2023-10-18 15:12:05浏览次数:32  
标签:... .. 输出 int dg 问题 ++ 皇后

n−皇后问题是指将n个皇后放在n×n的国际象棋棋盘上,使得皇后不能相互攻击到,即任意两个皇后都不能处于同一行、同一列或同一斜线上。
image
现在给定整数n,请你输出所有的满足条件的棋子摆法。
输入格式
共一行,包含整数n。
输出格式
每个解决方案占n行,每行输出一个长度为n的字符串,用来表示完整的棋盘状态。
其中.表示某一个位置的方格状态为空,Q表示某一个位置的方格上摆着皇后。
每个方案输出完成后,输出一个空行。
注意:行末不能有多余空格。
输出方案的顺序任意,只要不重复且没有遗漏即可。
数据范围
1≤n≤9
输入样例

4

输出样例

.Q..
...Q
Q...
..Q.

..Q.
Q...
...Q
.Q..

解法1

#include<iostream>

using namespace std;

const int N = 10;
int n;
char g[N][N];
bool col[N], dg[N], udg[N];

void dfs(int u) {
    if(u == n) {
        for(int i = 0; i < n; i++) puts(g[i]);
        puts("");
        return;
    }
    for(int i = 0; i < n; i++) {
        if(!col[i] && !dg[u + i] && !udg[n - u + i]) {
            g[u][i] = 'Q';
            col[i] = dg[u + i] = udg[n - u + i] = true;
            dfs(u + 1);
            col[i] = dg[u + i] = udg[n - u + i] = false;
            g[u][i] = '.';
        }
    }
}


int main() {
    cin >> n;
    for(int i = 0; i < n; i++) {
        for(int j = 0; j < n; j++) {
            g[i][j] = '.';
        }
    }
    dfs(0);
    return 0;
}

标签:...,..,输出,int,dg,问题,++,皇后
From: https://www.cnblogs.com/BlueSky2021/p/17772405.html

相关文章

  • 关于 K 维空间中整点之间曼哈顿距离最短路径计数问题
    约定\(K\)维空间中,整点的坐标以\(K\)个整数表示,形如\[Point\left(X_1,X_2,\cdots,X_k\right)\]定义两个点的曼哈顿距离为每一维坐标差的绝对值之和,记为\[MD\left(A,B\right)=\sum_{i=1}^{K}\left|{X_{i_A}-X_{i_B}}\right|\]定义两个点\(A\),\(B\)相邻当且仅当......
  • VMware 虚拟机 Ubuntu 系统没有IP地址 解决:UP BROADCAST MULTICAST 问题【转】
    转自:https://blog.csdn.net/a262624/article/details/95792665几周没使用虚拟机,今天打开的时候发现启动网络就是5分钟,然后还没有ip。百度了下找到了解决办法:  在我的VMware 虚拟机软件里面有许多Ubuntu系统的虚拟机,并且它们都是使用一段时间,就会出现没有IP地址的问题。我一......
  • WIndows 10 更新后,登录后黑屏【AppReadiness 问题】
    现象:更新Windows10版本 的累积更新KB4038788似乎会导致用户系统上登录时出现黑屏(用户可能需要长达5~10分钟才能登录)  临时解决方法:禁用APPReadiness服务 参考资料:https://support.microsoft.com/en-us/topic/black-screen-when-windows-10-restarts-after-a-......
  • 关于 git 的问题整理
    有关git的问题是越来越多,总是靠脑子记不住,还是写个随笔吧==git推送或获取提示报错Failedtoconnecttogithub.comport443:Timedout还是OpenSSLSSL_read:Connectionwasaborted,errno10053问题好像是网络问题解决思路如下:1关闭防火墙;有的时候其实电脑git的配置没......
  • 睡眠问题
    关于早醒早醒后隔一两个小时才能重新睡着是一种常见的睡眠问题,称为“早醒症"。这可能是由于多种原因引起的,并且对于每个人来说可能有不同的解决方法。以下是一些建议,希望能帮助您改善睡眠质量:建立规律的睡眠时间:尽量保持规律的睡眠时间,每天大致相同的时间上床睡觉和醒来,以帮助调......
  • 五、资源导出问题
    SubstancePainter当substance的贴图导出时,线性的颜色值经过伽马变换,颜色被提亮了,所以需要在Unity中勾选sRGB选项,让它在采样时能还原回线性值。PhotoShop如果使用线性空间,一般来说Photoshop可以什么都不改,导出的贴图只要勾上sRGB就可以了。如果调整PhotoShop的伽马值为1,导出的贴图......
  • SpringCloudGateway网关整合swagger3+Knife4j3,basePath丢失请求404问题
    很多人都是照着别人的文章粘代码,我也是粘的,但是这样粘也会有问题,我搞这个Knife4j3的时候遇到两个问题,这里记录一下:第一个是basePath丢失,第二个解决basePath丢失完又引发了会引起application/json数据类型参数示例的问题。在集成SpringCloudGateway网关的时候,会出现没有basePat......
  • jQuery 获取不到 textarea,值为空问题
    使用jQuery的val();获取;如 html:<textareaname="con"type="text"id="Rtest"></textarea>jq:vartextarea=$("#Rtest").val();注意:一定要在html中的textarea标签中加入 type="text"这个属性,,不然就获取不到数据。 【出处】:ht......
  • Redis中的缓存雪崩、缓存击穿、缓存穿透问题
    1.什么是缓存雪崩当我们提到缓存系统中的问题,缓存雪崩是一个经常被讨论的话题。缓存雪崩是指在某一时刻发生大量的缓存失效,导致瞬间大量的请求直接打到了数据库,可能会导致数据库瞬间压力过大甚至宕机。尤其在高并发的系统中,这种情况会导致连锁反应,整个系统可能会崩溃。1.1缓存......
  • springboot连接rabbitmq网络异常时,不能自动重连的问题
    在rabbitmq官网的javaapi处:https://www.rabbitmq.com/api-guide.html#recovery介绍了java连接rabbitmq异常恢复的问题。其中提及了如下内容Asofversion4.0.0oftheJavaclient,automaticrecoveryisenabledbydefault(andthustopologyrecoveryaswell).也就是......