题目描述:

会下国际象棋的人都很清楚:皇后可以在横、竖、斜线上不限步数地吃掉其他棋子。如何将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:八皇后相关推荐

  1. 八皇后问题(又名: 高斯八皇后)

    题目连接: 八皇后问题 题目: 会下国际象棋的人都很清楚:皇后可以在横.竖.斜线上不限步数地吃掉其他棋子.如何将8个皇后放在棋盘上(有8 * 8个方格),使它们谁也不能被吃掉!这就是著名的八皇后问题. ...

  2. 八皇后问题遗传算法c语言,遗传算法解决八皇后问题

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 八皇后问题描述 19 世纪著名的数学家 Gauss 在 1850 年提出八皇后问题后, 该问题成为各类语言程序设计的经典 ...

  3. 图解八皇后问题(递归)

    (以高斯为代表的许多数学家先后研究过这个问题.后来,当计算机问世,通过计算机程序的运算可以轻松解出这个问题) 题目描述 八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例.该问题是国际西洋棋棋手 ...

  4. [玩耍]八皇后问题动态演示

    学校组织的计算机技能大赛,题目解八皇后并做程序演示,顺便就贴博客上来. 八皇后问题 简述:8*8的棋盘,有八个皇后,每个皇后不能在同一行同一列同一斜线上,问有多少种可能的摆法.答案是92,这大家都知道 ...

  5. 题目---汉诺塔及AI代码及八皇后

    2019春第十一周作业 这个作业属于那个课程 C语言程序设计II 这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/software-engineering ...

  6. 八皇后的一个回溯递归解法

    解法来自严蔚敏的数据结构与算法. 代码如下: #include <iostream> using namespace std; const int N = 8;//皇后数 int coun ...

  7. 漫画:什么是八皇后问题?

    本文经授权转载自公众号程序员小灰 (ID:chengxuyuanxiaohui) -----  第二天  ----- 题目是什么意思呢? 国际象棋中的皇后,可以横向.纵向.斜向移动.如何在一个8X8的 ...

  8. 八皇后时间复杂度_LeetCode46:全排列(八皇后)

    前言 本系列文章为<leetcode>刷题笔记. 题目位置:力扣中国 项目位置:我的Github项目 题目 给定一个没有重复数字的序列,返回其所有可能的全排列. 示例: 输入: [1,2, ...

  9. P1219 八皇后 含优化 1/5

    题目描述 检查一个如下的6 x 6的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行.每列有且只有一个,每条对角线(包括两条主对角线的所有平行线)上至多有一个棋子. 上面的布局可以用序列2 4 6 1 3 ...

最新文章

  1. 云小课丨SA基线检查:给云服务来一次全面“体检”
  2. 软件测试中英文词汇对照表
  3. 电脑音量图标不见了,该如何找回?
  4. linux 链表头文件,Linux下单链表的实现
  5. PyTorch:数据读取1 - Datasets及数据集划分
  6. sd卡写保护解除工具_手把手教你快速解除vivo手机高通系列屏幕锁(附短接拆机小视频)...
  7. 微软输入法数字有间隔_各种中文输入法中输入间隔号“·”的措施
  8. 统计分析之:正态性检验——SPSS操作指南
  9. 强智教务系统验证码识别 Tensorflow CNN
  10. Android Shimmer微光闪烁shimmer-android
  11. Direct2D 图形计算
  12. 第二章 ObjectARX类库简介
  13. onlyoffice转换html,CentOS7安装onlyoffice实现word的在线预览和编辑
  14. LED驱动器满足功率、空间和成本挑战
  15. Excel表格汇总计算计算同一人数据
  16. PAT甲级-1021 Deepest Root(25分)
  17. 嵌入式开发中的C语言知识点
  18. Variable变量
  19. 距离成为科技“爆款”,“眼动追踪”还有多远?
  20. Intellij IDEA 简单配置字体大小

热门文章

  1. [转]新来的大神用策略模式把if else给优化了,技术总监说:能不能想好了再改?...
  2. 设计模式07_建造者
  3. Linux的用户管理
  4. c语言如何写地图,自己用C语言写的扫雷地图
  5. 文件怎么更新_iOS13屏蔽更新描述文件失效了怎么办?iOS13屏蔽系统更新教程
  6. python开源的人脸识别库_什么是 SeetaFace 开源人脸识别引擎
  7. mysql workbench第二栏图标中英文意思
  8. centos系统安装pycharm编辑器
  9. gateway网关_使用Sentinel实现gateway网关及服务接口限流
  10. python numpy库_numpy库学习总结(基础知识)