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

noi 1700 输出 八皇后问题

noi 输出 八皇后问题

http://noi.openjudge.cn/ch0205/1700/
更多资源请关注纽扣编程微信公众号
在这里插入图片描述

思路:

题意知八皇后中 行,列,正斜线对角线 /、反斜线对角线 \都不能存在两个或者两个以上

递归列,每列放一个皇后,放置过程中判断行、正斜线对角线 /、反斜线对角线 \都不能存在两个或者两个以上皇后

行使用数组b判断

反斜线对角线 \ w[i-j+7] 数组判断

正斜线对角线 / m[i+j] 数组判断

具体可参考如下示例加以理解
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

#include<bits/stdc++.h>
using namespace std;int a[10001],b[10001],w[10001],m[10001],tot=0;
int print(){tot++;//每输出一次 tot++ cout<<"No. "<<tot<<endl;//循环每个皇后 列 for(int j=1;j<=8;j++){//循环行 对应a[i]是皇后输出 for(int i=1;i<=8;i++){if(j==a[i]){cout<<1<<" ";}else{cout<<0<<" ";}}cout<<endl;}
}
//逐渐深入遍历8列 j为对应列 
int search(int j){//循环遍历8行 for(int i=1;i<=8;i++){//b[i]为0表示这行可放 一次八皇后解中一列只能一个皇后//w[i-j+7]为0表示反斜线方向对角线可放 一次八皇后解中某对角线只能放一个皇后//m[i+j]为0表示正斜线方向对角线可放 一次八皇后解中某对角线只能放一个皇后if(b[i]==0 && w[i-j+7]==0 && m[i+j]==0){a[j]=i;//记录每个皇后位置 在第几列 b[i]=1;w[i-j+7]=1;m[i+j]=1;if(j==8){//第八个输出 print();}else{search(j+1);}//回溯 恢复 b[i]=0;w[i-j+7]=0;m[i+j]=0;}}    
}int main(){search(1);return 0;    
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 使用zip包来安装mysql
  • Vue3+Setup使用websocket
  • mybatis xml 动态sql相关语法
  • <Linux>进程概念-下
  • 表操作数据库练习
  • 苹果电脑文件加密?【小编带你挖宝解决问题!】
  • 基于UDP的网络聊天室
  • 湖南省第八届职工职业技能大赛 暨“智赋万企”数字化应用技术技能大赛 网络与信息安全管理员赛项技术文件
  • 8.15成都市计量院面试问答
  • Linux - 常用基础指令和命令
  • 脱胎于 S 语言的R语言,它何为成为各行业数据分析师的首选?
  • anolis 8.9安装k8s
  • 【C++11】右值引用的深度解析(什么是右值引用?它有什么作用?能应用在那些场景?)
  • 使用MYSQL函数问题
  • 最新图像修复论文汇总(2024年以来)(三)
  • @jsonView过滤属性
  • 07.Android之多媒体问题
  • Fabric架构演变之路
  • golang中接口赋值与方法集
  • Hibernate最全面试题
  • JavaScript/HTML5图表开发工具JavaScript Charts v3.19.6发布【附下载】
  • Java反射-动态类加载和重新加载
  • linux学习笔记
  • Spring Cloud中负载均衡器概览
  • Vue源码解析(二)Vue的双向绑定讲解及实现
  • Web Storage相关
  • 关键词挖掘技术哪家强(一)基于node.js技术开发一个关键字查询工具
  • 互联网大裁员:Java程序员失工作,焉知不能进ali?
  • ------- 计算机网络基础
  • 前端技术周刊 2019-02-11 Serverless
  • 前嗅ForeSpider中数据浏览界面介绍
  • 日剧·日综资源集合(建议收藏)
  • 如何在 Tornado 中实现 Middleware
  • ​Spring Boot 分片上传文件
  • ​数据结构之初始二叉树(3)
  • ![CDATA[ ]] 是什么东东
  • #知识分享#笔记#学习方法
  • (003)SlickEdit Unity的补全
  • (03)光刻——半导体电路的绘制
  • (3) cmake编译多个cpp文件
  • (4)Elastix图像配准:3D图像
  • (6)【Python/机器学习/深度学习】Machine-Learning模型与算法应用—使用Adaboost建模及工作环境下的数据分析整理
  • (C语言)共用体union的用法举例
  • (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
  • (安卓)跳转应用市场APP详情页的方式
  • (二)hibernate配置管理
  • (二十五)admin-boot项目之集成消息队列Rabbitmq
  • (附源码)springboot车辆管理系统 毕业设计 031034
  • (剑指Offer)面试题34:丑数
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理第3章 信息系统治理(一)
  • (转)IIS6 ASP 0251超过响应缓冲区限制错误的解决方法
  • (转载)跟我一起学习VIM - The Life Changing Editor
  • (自用)网络编程
  • ***linux下安装xampp,XAMPP目录结构(阿里云安装xampp)
  • *Algs4-1.5.25随机网格的倍率测试-(未读懂题)