给定一个n*n的棋盘,棋盘中有一些位置不能放皇后。现在要向棋盘中放入n个黑皇后和n个白皇后,使任意的两个黑皇后都不在同一行、同一列或同一条对角线上,任意的两个白皇后都不在同一行、同一列或同一条对角线上。问总共有多少种放法?n小于等于8。

输入格式:

输入的第一行为一个整数n,表示棋盘的大小。   接下来n行,每行n个0或1的整数,如果一个整数为1,表示对应的位置可以放皇后,如果一个整数为0,表示对应的位置不可以放皇后。

输出格式:

输出一个整数,表示总共有多少种放法。

输入样例1:

4
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1

输出样例1:

2

输入样例2:

4
1 0 1 1
1 1 1 1
1 1 1 1
1 1 1 1

输出样例2:

0递归回溯。代码:
#include <stdio.h>
#include <stdlib.h>
int mp[10][10],lay[10],n;
int ans[100][8],ant;
int temp[8],num;
int check(int k,int v) {for(int i = 0;i < k;i ++) {if(temp[i] == v)return 0;if(abs(temp[i] - v) == k - i)return 0;}return 1;
}
int dif(int a,int b) {for(int i = 0;i < n;i ++) {if(ans[a][i] == ans[b][i])return 0;}return 1;
}
void que(int k){if(k == n) {for(int i = 0;i < n;i ++) {ans[ant][i] = temp[i];}ant ++;return;}for(int i = 0;i < n;i ++) {if(mp[k][i] && check(k,i)) {temp[k] = i;mp[k][i] = 0;que(k + 1);mp[k][i] = 1;}}
}
int main() {scanf("%d",&n);for(int i = 0;i < n;i ++) {for(int j = 0;j < n;j ++) {scanf("%d",&mp[i][j]);}}que(0);for(int i = 0;i < ant;i ++) {for(int j = 0;j < i;j ++) {if(dif(i,j))num ++;}}printf("%d",num * 2);
}

转载于:https://www.cnblogs.com/8023spz/p/9380224.html

蓝桥杯训练 2n皇后问题相关推荐

  1. 蓝桥杯训练 2n皇后

    问题描述 给定一个n*n的棋盘,棋盘中有一些位置不能放皇后.现在要向棋盘中放入n个黑皇后和n个白皇后,使任意的两个黑皇后都不在同一行.同一列或同一条对角线上,任意的两个白皇后都不在同一行.同一列或同一 ...

  2. 问题 1460: [蓝桥杯]黑白2n皇后问题

    题目描述 给定一个n*n的棋盘,棋盘中有一些位置不能放皇后.现在要向棋盘中放入n个黑皇后和n个白皇后,使任意的两个黑皇后都不在同一行.同一列或同一条对角线上,任意的两个白皇后都不在同一行.同一列或同一 ...

  3. [蓝桥杯][基础训练]2n皇后问题

    给定一个n*n的棋盘,棋盘中有一些位置不能放皇后.现在要向棋盘中放入n个黑皇后和n个白皇后,使任意的两个黑皇后都不在同一行.同一列或同一条对角线上,任意的两个白皇后都不在同一行.同一列或同一条对角线上 ...

  4. 【算法练习】蓝桥杯训练一:区间k大数查询、最大最小公倍数、k好数

    蓝桥杯训练一 一.区间k大数查询(简单)(模拟) 二.最大最小公倍数(中等)(数论) 三.k好数(DP) 一.区间k大数查询(简单)(模拟) 直接模拟就可以,个人觉得题目不严谨,没有说重复元素,也没有 ...

  5. 蓝桥杯 Java n皇后受伤的皇后2n皇后 详解

    1.n皇后问题 在 n*n 的棋盘上放置 n 个皇后,使它们不同行.不同列.不同对角线.问有多少种合法的情况. 输入 4 输出 2 输入 8 输出 92 首先我们把这个问题看成具体的皇后数量去思考,比 ...

  6. 蓝桥杯训练题目若干(东华20考研挑战题1-50)

    文章目录 前言 1 Huffuman树 2 回文数 3 字母图形 4 大阶乘计算 5 回形取数 6 龟兔赛跑预测 7 Sine之舞 8 矩形面积交 9 矩阵乘法 10 分解质因数 11 字符串对比 1 ...

  7. 蓝桥杯训练-礼物盒问题-JAVA

    引用一下习题的原文链接:https://blog.csdn.net/obession/article/details/68951351 大致问题就是: 小y有一个宽度为 100cm,高度为 20cm, ...

  8. ACMNO.39 分解质因数 求出区间[a,b]中所有整数的质因数分解。蓝桥杯训练!

    题目描述 求出区间[a,b]中所有整数的质因数分解. 输入 输入两个整数a,b. 输出 每行输出一个数的分解,形如k=a1*a2*a3...(a1< =a2< =a3...,k也是从小到大 ...

  9. 蓝桥杯训练总结(收官)

    准备了将近3个周,明天就要正式奔赴战场了.都说蓝桥杯比赛很水,但是我以为不管任何比赛,都需要怀有一颗敬畏之心.蓝桥杯比赛算是自己对ACM比赛重新回顾的一次机会,恐怕这也是最后一次机会.虽然这一段时间, ...

  10. 【蓝桥杯】8皇后·改

    参考博客:http://www.cnblogs.com/gaoteng/archive/2012/04/11/2442692.html 题目链接:http://lx.lanqiao.cn/proble ...

最新文章

  1. action和servlet的关系
  2. 通过iframe标签绕过csp
  3. 如何设计后台产品中的“保存”功能?
  4. JsonRequestBehavior.AllowGet 方便浏览器调试
  5. 新的DMN编辑器预览
  6. (78)Verilog HDL条件编译:`ifdef
  7. 如何使用SQL Server Management Studio(SSMS)连接到Azure存储帐户
  8. 利用ASP.NET一般处理程序动态生成Web图像
  9. 拿来即用的 Python 时间范围判断方法
  10. FFmpeg进行屏幕录像和录音
  11. python七大神级插件_Maya神级插件 SOuP 和OpenVDB
  12. MATLAB中神经网络工具箱的使用
  13. aptana php插件使用教程,用Aptana Studio 1.5开发PHP,很强的PHP IDE,Aptana PHP,简介,安装教程...
  14. 基于qt linux的视频监控,基于Qt和OpenCV的无线视频监控系统
  15. Word中的公式编辑器插入自动编号公式时,隐藏必要的分章节字符串的办法
  16. 记录Pytorch在Linux环境下安装出现的pillow相关问题解决
  17. 飞腾计算机硬件测试方法,银河麒麟操作系统
  18. MFC_C++02_模态对话框,非模态对话框,StaticText静态文本,CEditCtrl控件,ComboBox下拉框,CListCtrl控件,CTreeCtrl 树控件,TabCtrl标签控件
  19. 在uni-app当中引入本地图片注意事项以及阿里矢量图iconfont.css当中文件查找失败:‘./iconfont.eot解决办法
  20. 运用波利亚的怎样解题表来解决事件绑定问题

热门文章

  1. 并发编程学习之JDK1.8的ConcurrentHashMap
  2. RabbitMQ常用交换机模式总结
  3. 腾讯2018春招笔试题,翻转数列
  4. 学生时代的最后一个新年,请一定要做这五件事
  5. Fastreport.Net用户手册(九):配置Bands
  6. 如何用vs2013开发人员命令提示工具执行一个方法(一个简单的demo)
  7. Linux下挂载iscsi存储及多路径功能配置
  8. JavaScript,5种调用函数的方法
  9. 删除Visual Studio最近的项目(收藏)
  10. 04_使用域名访问后台管理系统(Nginx)