n皇后问题(DFS) C++实现

cpp 复制代码
#include<iostream>
using namespace std;
const int N=20;
bool col[N],dg[N],udg[N];
int n;
char q[N][N];

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

int main(){
    scanf("%d",&n);
    for(int i=0;i<n;i++)
        for(int j=0;j<n;j++) q[i][j]='.';
    dfs(0);
}
相关推荐
CountingStars61940 分钟前
梯度下降算法的计算过程
深度学习·算法·机器学习
lisanndesu1 小时前
栈 (算法十二)
算法·
qystca2 小时前
洛谷 B3715 分解质因子 2 C语言
算法
孑么2 小时前
力扣 全排列
java·算法·leetcode·职场和发展
余辉zmh2 小时前
【优选算法篇】:分而治之--揭秘分治算法的魅力与实战应用
c++·算法
qingy_20462 小时前
【算法】复制含有随机指针节点的链表
数据结构·算法·链表
Lenyiin2 小时前
第424场周赛:使数组元素等于零、零数组变换 Ⅰ、零数组变换 Ⅱ、最小化相邻元素的最大差值
c++·算法·leetcode·周赛·lenyiin
北顾南栀倾寒2 小时前
[Qt]常用控件介绍-输入类控件-QLineEdit、QTextEdit、QComboBox控件
开发语言·c++·qt
hummhumm2 小时前
第32章 汇编语言 - 实践项目:小型操作系统内核(一)
开发语言·汇编·数据库·算法·操作系统·程序设计·高级语言
0xCC说逆向2 小时前
Windows图形界面(GUI)-QT-C/C++ - QT信号与槽机制详解
java·c语言·开发语言·c++·windows·qt·mfc