八皇后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格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处 ...
随机推荐
- [笔记] c和指针
1.简介 2.基本概念 3.指针 计算机内存的最小单位是位(bit),每个位可以容纳值0或1,单独的位用处不大,通常许多位合成一组作为一个单位,以存储较大范围的值 每个字节包含8位,可以存储无符号值0 ...
- [DB] 大数据集群安装
学习要点 体系架构.原理 多做练习.试验 装虚拟机 网络模式:仅主机模式 software selection:development tools, GUI network & host na ...
- Linux 系统定时任务:crontab,anacron
Linux 系统定时任务:crontab,anacron 一.Cron 服务 1. 启动服务 service cron start 2. 关闭服务 service cron stop 3. 重启服务 ...
- tail -n 10 /etc/passwd
# tail -n 10 /etc/passwdrpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologinchrony:x:992:987::/ ...
- Hive 安装和配置
环境准备 已安装 HDFS 和 Yarn 集群环境 Windows 已安装 MySQL 8 (开启远程连接用户权限) 安装步骤 1. 上传并解压 Hive 安装文件 将 apache-hive-3.1 ...
- Linux进阶之综合练习
综合练习: 1.准备2台centos7系统的服务器,远程互相免密登录,以下所有题目过程中开启防火墙 2.给1号机和2号机使用光盘搭建本地yum源(永久生效) 3.给服务器1添加2块硬盘,1块1GB,1 ...
- origin2018去掉demo水印
消除demo字样 有的origin破解完成后,使用没问题,但导出的图有demo水印.其实不需要重装,只需要下载一个补丁即可解决. 1. 把下载到的origin.exe复制到安装文件夹 2. 双击执行一 ...
- Docker学习(2) 安装
1 在Ubanru中安装 简单安装: 2 windows安装docker 3 OS X 安装docker
- Go benchmark 详解
前言 基准测试(benchmark)是 go testing 库提供的,用来度量程序性能,算法优劣的利器. 在日常生活中,我们使用速度 m/s(单位时间内物体移动的距离)大小来衡量一辆跑车的性能,同理 ...
- MLIR算子量化Quantization
MLIR算子量化Quantization 本文概述了MLIR量化系统的设计.虽然术语"量化"是高度过载的,用于将浮点计算转换为以整数数学表示,适配的变量进行推理的技术的相当窄的范围 ...