八皇后O(1)算法题解
题目描述
在国际象棋棋盘上(8*8)放置八个皇后,使得任意两个皇后之间不能在同一行,同一列,也不能位于同于对角线上。问共有多少种不同的方法,并且按字典序从小到大指出各种不同的放法。
题解
见证奇迹的时刻!!!
#include<cstdio>
int main(){
printf(
"1 5 8 6 3 7 2 4\n"
"1 6 8 3 7 4 2 5\n"
"1 7 4 6 8 2 5 3\n"
"1 7 5 8 2 4 6 3\n"
"2 4 6 8 3 1 7 5\n"
"2 5 7 1 3 8 6 4\n"
"2 5 7 4 1 8 6 3\n"
"2 6 1 7 4 8 3 5\n"
"2 6 8 3 1 4 7 5\n"
"2 7 3 6 8 5 1 4\n"
"2 7 5 8 1 4 6 3\n"
"2 8 6 1 3 5 7 4\n"
"3 1 7 5 8 2 4 6\n"
"3 5 2 8 1 7 4 6\n"
"3 5 2 8 6 4 7 1\n"
"3 5 7 1 4 2 8 6\n"
"3 5 8 4 1 7 2 6\n"
"3 6 2 5 8 1 7 4\n"
"3 6 2 7 1 4 8 5\n"
"3 6 2 7 5 1 8 4\n"
"3 6 4 1 8 5 7 2\n"
"3 6 4 2 8 5 7 1\n"
"3 6 8 1 4 7 5 2\n"
"3 6 8 1 5 7 2 4\n"
"3 6 8 2 4 1 7 5\n"
"3 7 2 8 5 1 4 6\n"
"3 7 2 8 6 4 1 5\n"
"3 8 4 7 1 6 2 5\n"
"4 1 5 8 2 7 3 6\n"
"4 1 5 8 6 3 7 2\n"
"4 2 5 8 6 1 3 7\n"
"4 2 7 3 6 8 1 5\n"
"4 2 7 3 6 8 5 1\n"
"4 2 7 5 1 8 6 3\n"
"4 2 8 5 7 1 3 6\n"
"4 2 8 6 1 3 5 7\n"
"4 6 1 5 2 8 3 7\n"
"4 6 8 2 7 1 3 5\n"
"4 6 8 3 1 7 5 2\n"
"4 7 1 8 5 2 6 3\n"
"4 7 3 8 2 5 1 6\n"
"4 7 5 2 6 1 3 8\n"
"4 7 5 3 1 6 8 2\n"
"4 8 1 3 6 2 7 5\n"
"4 8 1 5 7 2 6 3\n"
"4 8 5 3 1 7 2 6\n"
"5 1 4 6 8 2 7 3\n"
"5 1 8 4 2 7 3 6\n"
"5 1 8 6 3 7 2 4\n"
"5 2 4 6 8 3 1 7\n"
"5 2 4 7 3 8 6 1\n"
"5 2 6 1 7 4 8 3\n"
"5 2 8 1 4 7 3 6\n"
"5 3 1 6 8 2 4 7\n"
"5 3 1 7 2 8 6 4\n"
"5 3 8 4 7 1 6 2\n"
"5 7 1 3 8 6 4 2\n"
"5 7 1 4 2 8 6 3\n"
"5 7 2 4 8 1 3 6\n"
"5 7 2 6 3 1 4 8\n"
"5 7 2 6 3 1 8 4\n"
"5 7 4 1 3 8 6 2\n"
"5 8 4 1 3 6 2 7\n"
"5 8 4 1 7 2 6 3\n"
"6 1 5 2 8 3 7 4\n"
"6 2 7 1 3 5 8 4\n"
"6 2 7 1 4 8 5 3\n"
"6 3 1 7 5 8 2 4\n"
"6 3 1 8 4 2 7 5\n"
"6 3 1 8 5 2 4 7\n"
"6 3 5 7 1 4 2 8\n"
"6 3 5 8 1 4 2 7\n"
"6 3 7 2 4 8 1 5\n"
"6 3 7 2 8 5 1 4\n"
"6 3 7 4 1 8 2 5\n"
"6 4 1 5 8 2 7 3\n"
"6 4 2 8 5 7 1 3\n"
"6 4 7 1 3 5 2 8\n"
"6 4 7 1 8 2 5 3\n"
"6 8 2 4 1 7 5 3\n"
"7 1 3 8 6 4 2 5\n"
"7 2 4 1 8 5 3 6\n"
"7 2 6 3 1 4 8 5\n"
"7 3 1 6 8 5 2 4\n"
"7 3 8 2 5 1 6 4\n"
"7 4 2 5 8 1 3 6\n"
"7 4 2 8 6 1 3 5\n"
"7 5 3 1 6 8 2 4\n"
"8 2 4 1 7 5 3 6\n"
"8 2 5 3 1 7 4 6\n"
"8 3 1 6 2 5 7 4\n"
"8 4 1 3 6 2 7 5\n"
"92");
return 0;
}
八皇后O(1)算法题解的更多相关文章
- 【算法导论】八皇后问题的算法实现(C、MATLAB、Python版)
八皇后问题是一道经典的回溯问题.问题描述如下:皇后可以在横.竖.斜线上不限步数地吃掉其他棋子.如何将8个皇后放在棋盘上(有8*8个方格),使它们谁也不能被吃掉? 看到这个问题,最容易想 ...
- 八皇后问题-recall算法
#!/usr/bin/env python3# -*- coding: utf-8 -*-import numbersimport numpyimport math'''八皇后为题:在国际象棋棋盘上摆 ...
- 回溯算法 LEETCODE别人的小结 一八皇后问题
回溯算法实际上是一个类似枚举的搜索尝试过程,主要是在搜索尝试中寻找问题的解,当发现已不满足求解条件时,就回溯返回,尝试别的路径. 回溯法是一种选优搜索法,按选优条件向前搜索,以达到目的.但是当探索到某 ...
- 八皇后算法的另一种实现(c#版本)
八皇后: 八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例.该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于 ...
- Python学习二(生成器和八皇后算法)
看书看到迭代器和生成器了,一般的使用是没什么问题的,不过很多时候并不能用的很习惯 书中例举了经典的八皇后问题,作为一个程序员怎么能够放过做题的机会呢,于是乎先自己来一遍,于是有了下面这个ugly的代码 ...
- 回溯算法-C#语言解决八皇后问题的写法与优化
结合问题说方案,首先先说问题: 八皇后问题:在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行.同一列或同一斜线上,问有多少种摆法. 嗯,这个问题已经被使用各种语言解 ...
- 算法——八皇后问题(eight queen puzzle)之回溯法求解
八皇后谜题是经典的一个问题,其解法一共有种! 其定义: 首先定义一个8*8的棋盘 我们有八个皇后在手里,目的是把八个都放在棋盘中 位于皇后的水平和垂直方向的棋格不能有其他皇后 位于皇后的斜对角线上的棋 ...
- 【算法】八皇后问题 Python实现
[八皇后问题] 问题: 国际象棋棋盘是8 * 8的方格,每个方格里放一个棋子.皇后这种棋子可以攻击同一行或者同一列或者斜线(左上左下右上右下四个方向)上的棋子.在一个棋盘上如果要放八个皇后,使得她们互 ...
- 『嗨威说』算法设计与分析 - 回溯法思想小结(USACO-cha1-sec1.5 Checker Challenge 八皇后升级版)
本文索引目录: 一.回溯算法的基本思想以及个人理解 二.“子集和”问题的解空间结构和约束函数 三.一道经典回溯法题点拨升华回溯法思想 四.结对编程情况 一.回溯算法的基本思想以及个人理解: 1.1 基 ...
- 八皇后问题求解java(回溯算法)
八皇后问题 八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例.该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处 ...
随机推荐
- wps中新罗马字体如何设置Times New Roman
word wps中新罗马字体如何设置Times New Roman ### WPS字体自带 Times New Roman ###
- zabbix官方源替换为阿里云的zabbix源,一键脚本。(安装zabbix报错curl#18 - "transfer closed with 2988713 bytes remaining to read":15 ETA Trying other mirro)
最近突然安装zabbix总是报错,比如 (24/27): t1lib-5.1.2-14.el7.x86_64.rpm | 166 kB 00:00:00 zabbix-web-4.4.6-1.el7. ...
- 一看就懂的 安装完ubuntu 18.04后要做的事情和使用教程
一看就懂的 安装完ubuntu 18.04后要做的事情和使用教程原创CrownP 最后发布于2019-02-05 00:48:30 阅读数 2982 收藏展开1.更改为阿里云的源点击软件和更新 点击其 ...
- Java 运行 Jar 包中java -cp 与 java jar 的区别
java -cp java -cp 和 -classpath 一样,是指定类运行所依赖其他类的路径,通常是类库和jar包,需要全路径到jar包,多个jar包之间连接符:window上分号"; ...
- Python数模笔记-PuLP库(1)线性规划入门
1.什么是线性规划 线性规划(Linear programming),在线性等式或不等式约束条件下求解线性目标函数的极值问题,常用于解决资源分配.生产调度和混合问题.例如: max fx = 2*x1 ...
- SqlServer事务详解(事务隔离性和隔离级别详解)
概述 不少人对于事务的使用局限于begin transaction:开始事务.commit transaction:提交事务.rollback transaction:回滚事务的初步运用. 并且知道使 ...
- Elasticsearch快速入门和环境搭建
内容概述 什么是Elasticsearch,为什么要使用它? 基础概念简介 节点(node) 索引(index) 类型映射(mapping) 文档(doc) 本地环境搭建,创建第一个index 常用R ...
- 八、.net core(.NET 6)配置读取appsettings文件内容的通用功能
添加通用读取配置文件功能 在Wsk.Core.Package项目下,新增Microsoft.Extensions.Configuration包: 在启动项目下,设置appsettings.json属 ...
- 缩放 transform
转换属性 transform 转换是css3中的一个特征,可以实现元素的缩放,位移,变形. 作用: 使元素在位置或者形状上发生一定的改变. 属性: transform 属性值: scale:缩放(一般 ...
- 程序员与年龄:四十岁普通开发、三十五岁首席架构、三十岁基层Leader
最近,有一个词儿特别热门--躺平.有没有人跟你说过:"躺平说起来容易,做起来更容易." 和躺平相对的是另外一个词--内卷,群聊的时候,已经很多次看过草卷起来了.jpg表情包.某些节 ...