当前位置: 首页 > article >正文

图论 n 皇后问题

首先是对角线的英文是 diagonal ,注意线性代数里面说的主对角线是从左上到右下的这条对角线。有时候我们看题解,总是被一些比较小的点卡住。这个小的点可能不是这个题的关键,但是这个小点理解不了就做不了这个题。写算法题或者写其他的题都经常面临这个问题。我能做的就是多多鼓励自己,然后多多练习。

#include<iostream>

using namespace std;

const int N=20;
bool col[N],dg[N],udg[N];
int n;
char g[N][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+i-u]){
            g[u][i]='Q';
            col[i]=dg[u+i]=udg[n+i-u]=true;
            dfs(u+1);
            col[i]=dg[u+i]=udg[n+i-u]=false;
            g[u][i]='.';
        }
    }
}

int main(){
    scanf("%d",&n);
    for(int i=0;i<n;i++){
        for(int j=0;j<n;j++){
            g[i][j]='.';
        }
    }
    dfs(0);
    
    return 0;
}

几经波折,终于写出来了。也不是很难。就是深搜。剪枝。


http://www.kler.cn/a/514655.html

相关文章:

  • opengrok_windows_环境搭建
  • T-SQL语言的数据库编程
  • AI需要的基础数学知识
  • 内存 管理
  • STM32 FreeROTS Tickless低功耗模式
  • ConvBERT:通过基于跨度的动态卷积改进BERT
  • Hadoop特点和HDFS命令
  • IP地址的格式有哪几类类型
  • vim在末行模式下的删除功能
  • MyBatis和JPA区别详解
  • YOLO-cls训练及踩坑记录
  • LightGBM:让机器学习更快、更准、更高效
  • 基于SpringBoot+Vue的旅游管理系统【源码+文档+部署讲解】
  • gitlab处理空文件夹的提交或空文件夹提交失败
  • 洛谷题目 P1271 【深基9.例1】选举学生会 题解
  • 物联网边缘(Beta)离全面落地还有多远?
  • MySQL主从配置
  • Excel常用功能总结
  • java中的单元测试的使用以及原理
  • 机器学习-线性回归(简单回归、多元回归)
  • Java爬虫还有其他用途吗?
  • 头歌实训作业 算法设计与分析-贪心算法(第3关:活动安排问题)
  • cling: c++交互式执行
  • 数据分析 基础定义
  • 深入探讨Web应用开发:从前端到后端的全栈实践
  • 无人机反制设备:察打诱一体设备技术详解