蓝桥杯 基础训练 2n皇后
数月前做的2N皇后基本看书敲代码的,然后发现当时的代码不对,正好做到算法提高的8皇后·改,顺便把以前的代码顺带改了下,题目如下:
接下来n行,每行n个0或1的整数,如果一个整数为1,表示对应的位置可以放皇后,如果一个整数为0,表示对应的位置不可以放皇后。
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 0 1 1
1 1 1 1
1 1 1 1
1 1 1 1
#include<stdio.h>
int a[][];
int vis[][];
int b[];
int c[][];
int n;
int count=;
void dfs(int cur)
{
int i;
if(cur==n)
{
for(i=;i<n;i++)
c[count][i]=b[i];
count++;
}
else for(i=;i<n;i++)
{
if(a[cur][i]&&!vis[][i]&&!vis[][cur+i]&&!vis[][cur-i+n])
{
b[cur]=i;
vis[][i]=vis[][cur+i]=vis[][cur-i+n]=;
dfs(cur+);
vis[][i]=vis[][cur+i]=vis[][cur-i+n]=;
}
}
}
int main()
{
int i,j,k,number=,flag;
scanf("%d",&n);
for(i=;i<n;i++)
for(j=;j<n;j++)
scanf("%d",&a[i][j]);
dfs();
for(i=;i<count;i++)
{
for(j=i+;j<count;j++)
{
flag=;
for(k=;k<n;k++)
{
if(c[i][k]==c[j][k])
{
flag=;
break;
}
}
if(flag)
number++;
}
}
printf("%d",number*);
return ;
}
蓝桥杯 基础训练 2n皇后的更多相关文章
- [蓝桥杯][基础训练]2n皇后问题
		
Description 给定一个n*n的棋盘,棋盘中有一些位置不能放皇后.现在要向棋盘中放入n个黑皇后和n个白皇后,使任意的两个黑皇后都不在同一行.同一列或同一条对角线上,任意的两个白皇后都不在同一行 ...
 - 蓝桥杯—BASIC-27 2n皇后问题(DFS)
		
问题描述 给定一个n*n的棋盘,棋盘中有一些位置不能放皇后.现在要向棋盘中放入n个黑皇后和n个白皇后, 使任意的两个黑皇后都不在同一行.同一列或同一条对角线上,任意的两个白皇后都不在同一行. 同一列或 ...
 - 蓝桥杯之 2n皇后问题(双层dfs,暴力)
		
Description 给定一个n*n的棋盘,棋盘中有一些位置不能放皇后.现在要向棋盘中放入n个黑皇后 和n个白皇后,使任意的两个黑皇后都不在同一行.同一列或同一条对角线上,任意的两 个白皇后都不在同 ...
 - 蓝桥杯训练 2n皇后问题
		
给定一个n*n的棋盘,棋盘中有一些位置不能放皇后.现在要向棋盘中放入n个黑皇后和n个白皇后,使任意的两个黑皇后都不在同一行.同一列或同一条对角线上,任意的两个白皇后都不在同一行.同一列或同一条对角线上 ...
 - 蓝桥杯训练 2n皇后
		
问题描述 给定一个n*n的棋盘,棋盘中有一些位置不能放皇后.现在要向棋盘中放入n个黑皇后和n个白皇后,使任意的两个黑皇后都不在同一行.同一列或同一条对角线上,任意的两个白皇后都不在同一行.同一列或同一 ...
 - 蓝桥杯 基础训练 BASIC-27 2n皇后问题
		
基础练习 2n皇后问题 时间限制:1.0s 内存限制:512.0MB 问题描述 给定一个n*n的棋盘,棋盘中有一些位置不能放皇后.现在要向棋盘中放入n个黑皇后和n个白皇后,使任意的两个黑皇后都 ...
 - 基础训练 2n皇后问题
		
2n皇后问题 #include<iostream> #include<vector> using namespace std; int cnt = 0, n; vector&l ...
 - java  蓝桥杯基础训练   回文数
		
public class _8回文数 { //两种方法都可以 // public static void main(String[] args) { // String zheng ="&q ...
 - [蓝桥杯][基础训练]Sine之舞
		
Description 最近FJ为它的奶牛开设了数学分析课,FJ知道,若要学好这门课,必须有一个好的三角函数基本功. 所以他为奶牛们做了一个“Sine之舞”的游戏,寓教于乐,提高奶牛的计算能力. 不妨 ...
 
随机推荐
- 【gulp】gulp + browsersync 构建前端项目自动化工作流
			
什么是 gulp? gulp.js 是一个自动化构建工具,开发者可以使用它在项目开发过程中自动执行常见任务.gulp.js 是基于 node.js 构建的,利用 node.js 流的威力,你可以快速构 ...
 - halcon应用案例探究
			
14.1 Access 1. get_region_chain 功能:一个对象的轮廓(contour)作为链式码. 2. get_region_contour 功能:查询一个目标的轮廓(contou ...
 - QT工程文件的条件编译选择与额外的编译参数配置
			
QTCreator打开.pro工程文件后,依据不同的构建套件创建项目组.在项目组中,点开构建步骤的“详情”,增加一个自己的宏定义,比如: DEFINES+=IMX_287 然后,我们在.pro文件中添 ...
 - OpenGL着色器入门简介
			
说明:本文翻译自LearnOpengl经典教程,OpenGL着色器基础介绍的比较通俗易懂,特总结分享一下! 为什么要使用着色器?我们知道,OpenGL一般使用经典的固定渲染管线来渲染对象,但是随着Op ...
 - 转:The Difference Between a LayoutTransform and a RenderTransform
			
来自:http://www.tuicool.com/articles/fIfm22 #770 – The Difference Between a LayoutTransform and a Rend ...
 - VS Code设置成中文界面
			
1.打开VS Code,按:ctrl+shift+p打开指令面板,输入lang,选择Configure Display Language 2.将"locale"后面的"e ...
 - Q - Girls and Boys
			
来源poj1068 In the second year of the university somebody started a study on the romantic relations be ...
 - mysql 计算两点经纬度之间的直线距离(具体sql语句)
			
文章转载地址 http://blog.sina.com.cn/s/blog_7bbfd5fd01017d1e.html 新增sql语句具体实现 计算距离(单位 m)并排序 longitude 经度 l ...
 - 利用pl/sql执行计划评估SQL语句的性能简析
			
一段SQL代码写好以后,可以通过查看SQL的执行计划,初步预测该SQL在运行时的性能好坏,尤其是在发现某个SQL语句的效率较差时,我们可以通过查看执行计划,分析出该SQL代码的问题所在. 那么,作为 ...
 - 让ADO.NET Entity Framework支持Oracle数据库
			
Oracle最近发布了 Oracle Data Access Component(ODAC)11. 2 Rel 4,其中增加了对 Entity Framework 4.1 和4.2的支持.这让 .NE ...