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);
}
相关推荐
自然语3 分钟前
人工智能之数字生命-学习的过程
数据结构·人工智能·深度学习·学习·算法
灯厂码农7 分钟前
C++文件操作
开发语言·c++
Yuezero_14 分钟前
Research Intern面试(一)——手敲LLM快速复习
pytorch·深度学习·算法
️停云️23 分钟前
C++异常与智能指针
开发语言·c++
wyiyiyi25 分钟前
【数据结构+算法】非递归遍历二叉树的理解
大数据·数据结构·笔记·算法·leetcode·数据分析
2401_8933266232 分钟前
力扣1971.寻找图中是否存在路径
算法·leetcode·职场和发展
zs宝来了41 分钟前
HOT100-技巧类型题
数据结构·算法
Ayanami_Reii41 分钟前
进阶数据结构-FenwickTree
数据结构·算法·树状数组·fenwick tree
chenyuhao202444 分钟前
MySQL事务
开发语言·数据库·c++·后端·mysql
爪哇部落算法小助手1 小时前
每日两题day59
数据结构·c++·算法