蓝桥杯训练 2n皇后问题
给定一个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皇后问题相关推荐
- 蓝桥杯训练 2n皇后
问题描述 给定一个n*n的棋盘,棋盘中有一些位置不能放皇后.现在要向棋盘中放入n个黑皇后和n个白皇后,使任意的两个黑皇后都不在同一行.同一列或同一条对角线上,任意的两个白皇后都不在同一行.同一列或同一 ...
- 问题 1460: [蓝桥杯]黑白2n皇后问题
题目描述 给定一个n*n的棋盘,棋盘中有一些位置不能放皇后.现在要向棋盘中放入n个黑皇后和n个白皇后,使任意的两个黑皇后都不在同一行.同一列或同一条对角线上,任意的两个白皇后都不在同一行.同一列或同一 ...
- [蓝桥杯][基础训练]2n皇后问题
给定一个n*n的棋盘,棋盘中有一些位置不能放皇后.现在要向棋盘中放入n个黑皇后和n个白皇后,使任意的两个黑皇后都不在同一行.同一列或同一条对角线上,任意的两个白皇后都不在同一行.同一列或同一条对角线上 ...
- 【算法练习】蓝桥杯训练一:区间k大数查询、最大最小公倍数、k好数
蓝桥杯训练一 一.区间k大数查询(简单)(模拟) 二.最大最小公倍数(中等)(数论) 三.k好数(DP) 一.区间k大数查询(简单)(模拟) 直接模拟就可以,个人觉得题目不严谨,没有说重复元素,也没有 ...
- 蓝桥杯 Java n皇后受伤的皇后2n皇后 详解
1.n皇后问题 在 n*n 的棋盘上放置 n 个皇后,使它们不同行.不同列.不同对角线.问有多少种合法的情况. 输入 4 输出 2 输入 8 输出 92 首先我们把这个问题看成具体的皇后数量去思考,比 ...
- 蓝桥杯训练题目若干(东华20考研挑战题1-50)
文章目录 前言 1 Huffuman树 2 回文数 3 字母图形 4 大阶乘计算 5 回形取数 6 龟兔赛跑预测 7 Sine之舞 8 矩形面积交 9 矩阵乘法 10 分解质因数 11 字符串对比 1 ...
- 蓝桥杯训练-礼物盒问题-JAVA
引用一下习题的原文链接:https://blog.csdn.net/obession/article/details/68951351 大致问题就是: 小y有一个宽度为 100cm,高度为 20cm, ...
- ACMNO.39 分解质因数 求出区间[a,b]中所有整数的质因数分解。蓝桥杯训练!
题目描述 求出区间[a,b]中所有整数的质因数分解. 输入 输入两个整数a,b. 输出 每行输出一个数的分解,形如k=a1*a2*a3...(a1< =a2< =a3...,k也是从小到大 ...
- 蓝桥杯训练总结(收官)
准备了将近3个周,明天就要正式奔赴战场了.都说蓝桥杯比赛很水,但是我以为不管任何比赛,都需要怀有一颗敬畏之心.蓝桥杯比赛算是自己对ACM比赛重新回顾的一次机会,恐怕这也是最后一次机会.虽然这一段时间, ...
- 【蓝桥杯】8皇后·改
参考博客:http://www.cnblogs.com/gaoteng/archive/2012/04/11/2442692.html 题目链接:http://lx.lanqiao.cn/proble ...
最新文章
- action和servlet的关系
- 通过iframe标签绕过csp
- 如何设计后台产品中的“保存”功能?
- JsonRequestBehavior.AllowGet 方便浏览器调试
- 新的DMN编辑器预览
- (78)Verilog HDL条件编译:`ifdef
- 如何使用SQL Server Management Studio(SSMS)连接到Azure存储帐户
- 利用ASP.NET一般处理程序动态生成Web图像
- 拿来即用的 Python 时间范围判断方法
- FFmpeg进行屏幕录像和录音
- python七大神级插件_Maya神级插件 SOuP 和OpenVDB
- MATLAB中神经网络工具箱的使用
- aptana php插件使用教程,用Aptana Studio 1.5开发PHP,很强的PHP IDE,Aptana PHP,简介,安装教程...
- 基于qt linux的视频监控,基于Qt和OpenCV的无线视频监控系统
- Word中的公式编辑器插入自动编号公式时,隐藏必要的分章节字符串的办法
- 记录Pytorch在Linux环境下安装出现的pillow相关问题解决
- 飞腾计算机硬件测试方法,银河麒麟操作系统
- MFC_C++02_模态对话框,非模态对话框,StaticText静态文本,CEditCtrl控件,ComboBox下拉框,CListCtrl控件,CTreeCtrl 树控件,TabCtrl标签控件
- 在uni-app当中引入本地图片注意事项以及阿里矢量图iconfont.css当中文件查找失败:‘./iconfont.eot解决办法
- 运用波利亚的怎样解题表来解决事件绑定问题