Bailian2698 八皇后【回溯】
2698:八皇后问题
总时间限制: 10000ms 内存限制: 65536kB
描述
在国际象棋棋盘上放置八个皇后,要求每两个皇后之间不能直接吃掉对方。
输入
无输入。
输出
按给定顺序和格式输出所有八皇后问题的解(见Sample Output)。
样例输入
样例输出
No. 1
1 0 0 0 0 0 0 0
0 0 0 0 0 0 1 0
0 0 0 0 1 0 0 0
0 0 0 0 0 0 0 1
0 1 0 0 0 0 0 0
0 0 0 1 0 0 0 0
0 0 0 0 0 1 0 0
0 0 1 0 0 0 0 0
No. 2
1 0 0 0 0 0 0 0
0 0 0 0 0 0 1 0
0 0 0 1 0 0 0 0
0 0 0 0 0 1 0 0
0 0 0 0 0 0 0 1
0 1 0 0 0 0 0 0
0 0 0 0 1 0 0 0
0 0 1 0 0 0 0 0
No. 3
1 0 0 0 0 0 0 0
0 0 0 0 0 1 0 0
0 0 0 0 0 0 0 1
0 0 1 0 0 0 0 0
0 0 0 0 0 0 1 0
0 0 0 1 0 0 0 0
0 1 0 0 0 0 0 0
0 0 0 0 1 0 0 0
No. 4
1 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0
0 0 0 0 0 0 0 1
0 0 0 0 0 1 0 0
0 0 1 0 0 0 0 0
0 0 0 0 0 0 1 0
0 1 0 0 0 0 0 0
0 0 0 1 0 0 0 0
No. 5
0 0 0 0 0 1 0 0
1 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0
0 1 0 0 0 0 0 0
0 0 0 0 0 0 0 1
0 0 1 0 0 0 0 0
0 0 0 0 0 0 1 0
0 0 0 1 0 0 0 0
No. 6
0 0 0 1 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0
0 0 0 0 0 0 0 1
0 1 0 0 0 0 0 0
0 0 0 0 0 0 1 0
0 0 1 0 0 0 0 0
0 0 0 0 0 1 0 0
No. 7
0 0 0 0 1 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1
0 0 0 1 0 0 0 0
0 1 0 0 0 0 0 0
0 0 0 0 0 0 1 0
0 0 1 0 0 0 0 0
0 0 0 0 0 1 0 0
No. 8
0 0 1 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 1 0
0 0 0 0 1 0 0 0
0 0 0 0 0 0 0 1
0 1 0 0 0 0 0 0
0 0 0 1 0 0 0 0
0 0 0 0 0 1 0 0
No. 9
0 0 0 0 1 0 0 0
1 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0
0 0 0 0 0 1 0 0
0 0 0 0 0 0 0 1
0 1 0 0 0 0 0 0
0 0 0 0 0 0 1 0
0 0 1 0 0 0 0 0
…以下省略
提示
此题可使用函数递归调用的方法求解。
来源
计算概论05
问题链接:Bailian2698 八皇后
问题简述:(略)
问题分析:经典的八皇后问题,用回溯法来解决。
程序说明:(略)
参考链接:(略)
题记:(略)
AC的C++语言程序如下:
/* Bailian2698 八皇后 */#include <bits/stdc++.h>using namespace std;const int N = 8;
int idx[N], no = 0;bool judge(int row, int col)
{for (int i = 0; i < row; i++)if (idx[i] == col || abs(idx[i] - col) == row - i)return false;return true;
}void search(int row)
{if (row == 8) {printf("No. %d\n", ++no);for (int c = 0; c < N; c++)for (int r = 0; r < N; r++)printf("%c%c", c == idx[r] ? '1' : '0', r == 7 ? '\n' : ' ');} else {for (int i = 0; i < N; i++)if (judge(row, i)) {idx[row] = i;search(row + 1);}}
}int main()
{search(0);return 0;
}
Bailian2698 八皇后【回溯】相关推荐
- 八皇后回溯算法原理剖析及其JS实现
八皇后回溯算法(JS实现) 八皇后算法描述如下: 在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行.同一列或同一斜线上,问有多少种摆法! 下面来分析一波,假设此时我 ...
- UVA 167(The Sultan's Successors)八皇后回溯
题意 输入8x8的棋盘 在棋盘上放置8个皇后 输出8个皇后位置对应数字之和的最大值 回溯,一年前做的题目,竟然又碰到了,之前没学过dfs,对着题解思考了很长时间... 粗心的我,写错了一个变量名,查了 ...
- Bailian2754 八皇后【回溯】
2754:八皇后 总时间限制: 1000ms 内存限制: 65536kB 描述 会下国际象棋的人都很清楚:皇后可以在横.竖.斜线上不限步数地吃掉其他棋子.如何将8个皇后放在棋盘上(有8 * 8个方格) ...
- 【恋上数据结构】回溯、剪枝(八皇后、n皇后)、LeetCode51.N皇后、LeetCode52.N皇后 II
回溯 回溯(Back Tracking) 提出八皇后问题(Eight Queens) 初步思路一:暴力出奇迹 初步思路二:根据题意减少暴力程度 初步思路三:回溯法(回溯+剪枝) 四皇后 - 回溯法图示 ...
- 递归/回溯:八皇后问题N-Queens
N皇后问题是计算机科学中最为经典的问题之一,该问题可追溯到1848年,由国 际西洋棋棋手马克斯·贝瑟尔于提出了8皇后问题. 将N个皇后放摆放在N*N的棋盘中,互相不可攻击,有多少种摆放方式,每种摆 放 ...
- 十二、八皇后问题(递归回溯)
一.八皇后问题介绍 (本次使用回溯算法解决,之后会用贪心算法优化) 在 8×8 格的国际象棋上摆放八个皇后,使其不能互相攻击,即:任意两个皇后都不能处于同一行. 同一列或同一斜线上,问有多少种摆法(9 ...
- 递归回溯解决八皇后问题
文章目录 前言 八皇后问题 问题解析 代码实现 完整代码 前言 八皇后问题是一个古老而著名的问题,是回溯算法的典型例题.该问题是十九世纪著名的数学家高斯1850年提出:在8X8格的国际象棋上摆放八个皇 ...
- 回溯算法 | 追忆那些年曾难倒我们的八皇后问题
文章收录在公众号:bigsai 更多精彩干货敬请关注! 前言 说起八皇后问题,它是一道回溯算法类的经典问题,也可能是我们大部分人在上数据结构或者算法课上遇到过的最难的一道题-- 第一次遇到它的时候应该 ...
- 八皇后时间复杂度_回溯算法 | 追忆那些年曾难倒我们的八皇后问题
文章收录在公众号:bigsai,关注更多干货和学习资源 记得点赞.在看 前言 说起八皇后问题,它是一道回溯算法类的经典问题,也可能是我们大部分人在上数据结构或者算法课上遇到过的最难的一道题-- 在这里 ...
最新文章
- python3.8.5 run-Python 3.8.0 正式版发布,新特性初体验
- 函数内部定义的tensroflow变量也会被保存
- Leetcode643.Maximum Average Subarray I子数组的最大平均数1
- 以深圳.NET俱乐部名义 的技术交流会圆满成功
- android点击加号,Android仿微信朋友圈点击加号添加图片功能
- .Net的 Web项目的打包过程
- 第二冲刺阶段绩效评估
- SAP License:SAP自学SAP常见的问题二
- Unity3D 渲染管线全流程解析
- 5行代码识别各种验证码
- Eclipse快捷键自动生成返回对象
- 天地图显示不全的问题
- PSP自制程序打包ISO方法及注意事项
- Python基础知识day2
- 七升七降调号_降7是什么调?
- CITA环境搭建与运行
- 史上最烂 spring aop 原理分析
- Eclipse项目红叉:报错Description Resource Path Location Type Target runtime Apache Tomcat v8.0 is not defin
- L1 操作系统的启动
- 该换壁纸啦,记录一个用CSS和HTML做的3D立体相册
热门文章
- Linux启动hbase的shell命令出现警告_Linux 系统故障排查和修复技巧
- 测试局域网路的MTU最大值
- Unity 2D工具:工作流介绍
- Android中ListView数据处理优化
- 湖南省计算机二级tc,湖南计算机二级考试大纲,重点内容谢谢!
- Hive中类SQL语言中的where 与having
- Redis之 介绍和安装
- android x86 oreo,Android-x86 8.1 RC1发布:PC上运行Android Oreo
- java金字塔显示_java控制台输出数字金字塔示例分享
- 嵌入式论文3000字_普通期刊发表论文费用是多少