题目1140:八皇后
- 题目描述:
-
会下国际象棋的人都很清楚:皇后可以在横、竖、斜线上不限步数地吃掉其他棋子。如何将8个皇后放在棋盘上(有8 * 8个方格),使它们谁也不能被吃掉!这就是著名的八皇后问题。
对于某个满足要求的8皇后的摆放方法,定义一个皇后串a与之对应,即a=b1b2...b8,其中bi为相应摆法中第i行皇后所处的列数。已经知道8皇后问题一共有92组解(即92个不同的皇后串)。
给出一个数b,要求输出第b个串。串的比较是这样的:皇后串x置于皇后串y之前,当且仅当将x视为整数时比y小。
- 输入:
-
第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个正整数b(1 <= b <= 92)
- 输出:
-
输出有n行,每行输出对应一个输入。输出应是一个正整数,是对应于b的皇后串。
- 样例输入:
-
2 1 92
- 样例输出:
-
15863724 84136275 Code:
#include <iostream> #include <vector>using namespace std;vector<int> ansVec; bool mark[10];int abs(int x){return x>0?x:-x; }void initMark(){for(int i=0;i<10;++i)mark[i]=true; }bool check(int num){for(int i=0;i<num-1;++i){for(int j=i+1;j<num;++j){if(abs(i-j)==abs(ansVec[i]-ansVec[j]))return false;}}return true; }int cnt;void DFS(int num,int n){if(!check(num))return;if(ansVec.size()==8){++cnt;if(cnt==n){vector<int>::iterator iter;for(iter=ansVec.begin();iter!=ansVec.end();++iter)cout<<*iter;cout<<endl;}return;}for(int i=1;i<=8;++i){if(mark[i]==false)continue;mark[i]=false;ansVec.push_back(i);DFS(num+1,n);mark[i]=true;ansVec.pop_back();}return; }int main() {int n,x;while(cin>>n){while(n--){cin>>x;cnt=0;initMark();DFS(0,x);}}return 0; }/**************************************************************Problem: 1140User: lcyvinoLanguage: C++Result: AcceptedTime:80 msMemory:1520 kb ****************************************************************/
转载于:https://www.cnblogs.com/Murcielago/p/4204162.html
题目1140:八皇后相关推荐
- 八皇后问题(又名: 高斯八皇后)
题目连接: 八皇后问题 题目: 会下国际象棋的人都很清楚:皇后可以在横.竖.斜线上不限步数地吃掉其他棋子.如何将8个皇后放在棋盘上(有8 * 8个方格),使它们谁也不能被吃掉!这就是著名的八皇后问题. ...
- 八皇后问题遗传算法c语言,遗传算法解决八皇后问题
8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 八皇后问题描述 19 世纪著名的数学家 Gauss 在 1850 年提出八皇后问题后, 该问题成为各类语言程序设计的经典 ...
- 图解八皇后问题(递归)
(以高斯为代表的许多数学家先后研究过这个问题.后来,当计算机问世,通过计算机程序的运算可以轻松解出这个问题) 题目描述 八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例.该问题是国际西洋棋棋手 ...
- [玩耍]八皇后问题动态演示
学校组织的计算机技能大赛,题目解八皇后并做程序演示,顺便就贴博客上来. 八皇后问题 简述:8*8的棋盘,有八个皇后,每个皇后不能在同一行同一列同一斜线上,问有多少种可能的摆法.答案是92,这大家都知道 ...
- 题目---汉诺塔及AI代码及八皇后
2019春第十一周作业 这个作业属于那个课程 C语言程序设计II 这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/software-engineering ...
- 八皇后的一个回溯递归解法
解法来自严蔚敏的数据结构与算法. 代码如下: #include <iostream> using namespace std; const int N = 8;//皇后数 int coun ...
- 漫画:什么是八皇后问题?
本文经授权转载自公众号程序员小灰 (ID:chengxuyuanxiaohui) ----- 第二天 ----- 题目是什么意思呢? 国际象棋中的皇后,可以横向.纵向.斜向移动.如何在一个8X8的 ...
- 八皇后时间复杂度_LeetCode46:全排列(八皇后)
前言 本系列文章为<leetcode>刷题笔记. 题目位置:力扣中国 项目位置:我的Github项目 题目 给定一个没有重复数字的序列,返回其所有可能的全排列. 示例: 输入: [1,2, ...
- P1219 八皇后 含优化 1/5
题目描述 检查一个如下的6 x 6的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行.每列有且只有一个,每条对角线(包括两条主对角线的所有平行线)上至多有一个棋子. 上面的布局可以用序列2 4 6 1 3 ...
最新文章
- 云小课丨SA基线检查:给云服务来一次全面“体检”
- 软件测试中英文词汇对照表
- 电脑音量图标不见了,该如何找回?
- linux 链表头文件,Linux下单链表的实现
- PyTorch:数据读取1 - Datasets及数据集划分
- sd卡写保护解除工具_手把手教你快速解除vivo手机高通系列屏幕锁(附短接拆机小视频)...
- 微软输入法数字有间隔_各种中文输入法中输入间隔号“·”的措施
- 统计分析之:正态性检验——SPSS操作指南
- 强智教务系统验证码识别 Tensorflow CNN
- Android Shimmer微光闪烁shimmer-android
- Direct2D 图形计算
- 第二章 ObjectARX类库简介
- onlyoffice转换html,CentOS7安装onlyoffice实现word的在线预览和编辑
- LED驱动器满足功率、空间和成本挑战
- Excel表格汇总计算计算同一人数据
- PAT甲级-1021 Deepest Root(25分)
- 嵌入式开发中的C语言知识点
- Variable变量
- 距离成为科技“爆款”,“眼动追踪”还有多远?
- Intellij IDEA 简单配置字体大小
热门文章
- [转]新来的大神用策略模式把if else给优化了,技术总监说:能不能想好了再改?...
- 设计模式07_建造者
- Linux的用户管理
- c语言如何写地图,自己用C语言写的扫雷地图
- 文件怎么更新_iOS13屏蔽更新描述文件失效了怎么办?iOS13屏蔽系统更新教程
- python开源的人脸识别库_什么是 SeetaFace 开源人脸识别引擎
- mysql workbench第二栏图标中英文意思
- centos系统安装pycharm编辑器
- gateway网关_使用Sentinel实现gateway网关及服务接口限流
- python numpy库_numpy库学习总结(基础知识)