首页 > 其他分享 >八皇后 问题

八皇后 问题

时间:2023-06-01 19:13:43浏览次数:23  
标签:std search int 问题 皇后 100 main

#include<cstdio>
using namespace std;
bool d[100]={0},b[100]={0},c[100]={0};
int sum=0,a[100];
int search(int);
int print();
int main(){
   search(1);        //从第1个皇后开始放置
}
int search(int i){
   int j;
   for (j=1;j<=8;j++)   //每个皇后都有8位置(列)可以试放
    if ((!b[j])&&(!c[i+j])&&(!d[i-j+7]))   //寻找放置皇后的位置
//由于C++不能操作负数组,因此考虑加7
    {                  //放置皇后,建立相应标志值
      a[i]=j;                 //摆放皇后
      b[j]=1;                   //宣布占领第j列
      c[i+j]=1;                  //占领两个对角线
      d[i-j+7]=1;
      if (i==8) print();     //8个皇后都放置好,输出
         else search(i+1);     //继续递归放置下一个皇后
      b[j]=0;             //递归返回即为回溯一步,当前皇后退出
      c[i+j]=0;
      d[i-j+7]=0;
      }
}
int print(){
    int i;
    sum++;              //方案数累加1
    printf("sum=%d\n",sum);
    for (i=1;i<=8;i++)        //输出一种方案
      printf("%4d",a[i]);
    printf("\n");
}

 

标签:std,search,int,问题,皇后,100,main
From: https://www.cnblogs.com/lhf123/p/17449949.html

相关文章

  • springboot多模块打包配置问题
    工程案例结构: -baidu//聚合过程   -baidu_web     //子模块web工程   -baidu_service//子模块   -baidu_config//子模块配置工程  注意事项(配置步骤):1.baidu聚......
  • 【亲测有效】wordpress多域名使用wp rocket插件问题
    wordpress多域名绑定,但是又想在主域名删除其他站缓存,这个时候在主站的默认清理按钮是无效的,只能代码方式实现。 //cleanhttp://your-site.com/contact/rocket_clean_files('http://your-site.com/contact/');//cleanhttp://your-site.com/contactandhttp://your-si......
  • ‘dependencies.dependency.version‘ for mysql:mysql-connector-java:jar is missin
    项目使用的技术框架是SpringBoot,依赖管理工具是Maven,需要用到数据库所以引入了mysql-connector-java相关jar包。之前项目一直正常的,不会报错,最近更新了一下版本,项目启动的时候直接报错:[INFO]Scanningforprojects...[ERROR][ERROR]Someproblemswereencounteredwhilep......
  • 动态规划(五)背包问题
    基本思想:动态规划算法通常用于求解具有某种最优性质的问题。在这类问题中,可能会有许多可行解。每一个解都对应于一个值,我们希望找到具有最优值的解。动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。与分......
  • nethunter终端进入KALI时报错问题
    在我的设备安装Nethunter成功后,使用NetHunter内置的连接终端工具连接时报了一个这样的错误zsh:failedtoloadmodule`zsh/zle':/usr/lib/aarch64-linux-gnu/zsh/5.9/zsh/zle.so:cannotopensharedobjectfile:Nosuchfileordirectorykali#使用SSH连接也是一样的错......
  • Java学习问题记录
    1.特殊基本数据类型除了这两个,其他的变量都不需要加符号//定义时需要在变量的值后面加L或llongcount=300000L;//定义时需要在变量的值后面加f或Ffloatcode=10.3f;2.常量定义//在Java中使用final关键字来修饰常量,声明方式和变量类似:(通常使用大写字母表示常量)fina......
  • Linux centos7 ppc64le编译安装MySQL8遇见问题
    一.关于Nopackagedevtoolset-7-gccavailable.的解决办法1.使用centos默认yum源2.依次执行以下命令yuminstall-ycentos-release-sclyuminstall-ydevtoolset-7 二.cmake3>=3.6.1isneededbymysql-community-8.0.18-1.el7.ppc64le安装cmake3yuminstall......
  • Navicat远程链接mysql数据库问题
    问题描述:docker安装mysql数据后使用Navicat链接mysql后,创建数据库报“1044-Accessdenidforuser'root'...”解决方案:1.登录远程服务器,进入mysql容器dockerexec-itmysql/bin/bash2.mysql-uroot-p->grantallprivilegeson*.*to'root'@'%';->flush......
  • java -jar XXX.jar 没有主清单属性以及找不到或无法加载主类的问题
    <skip>true</skip>一定要去掉每个插件都有一个< skip ></skip>属性,maven在调用插件的时候判断这个属性的值是否是true,是true的话就跳过。<plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</ar......
  • 内存泄漏问题预防与定位
    看了很多文章,定位无非是这2种:1.查log。自己封装一个申请内存和释放内存的接口,这个接口打印固定格式的日志。然后在发生内存泄漏的时候可以查看这些日志是否打印,如果只打印了申请日志,没打印释放日志,说明这个地方发生内存泄漏。2.Linux下使用工具valgrind排查 预防:尽量不使......