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);
}
相关推荐
暗然而日章5 小时前
C++基础:Stanford CS106L学习笔记 4 容器(关联式容器)
c++·笔记·学习
gihigo19985 小时前
matlab 基于瑞利衰落信道的误码率分析
算法
foxsen_xia6 小时前
go(基础06)——结构体取代类
开发语言·算法·golang
foxsen_xia6 小时前
go(基础08)——多态
算法·golang
leoufung6 小时前
用三色 DFS 拿下 Course Schedule(LeetCode 207)
算法·leetcode·深度优先
巨人张6 小时前
C++火柴人跑酷
开发语言·c++
im_AMBER7 小时前
算法笔记 18 二分查找
数据结构·笔记·学习·算法
C雨后彩虹7 小时前
机器人活动区域
java·数据结构·算法·华为·面试
MarkHD7 小时前
车辆TBOX科普 第53次 三位一体智能车辆监控:电子围栏算法、驾驶行为分析与故障诊断逻辑深度解析
算法
Gomiko8 小时前
C/C++基础(四):运算符
c语言·c++