(step4.3.2)hdu 2553(N皇后问题)
2013-08-16 23:45
369 查看
题目大意:n*n棋盘要放n个皇后,要求意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45角的斜线上。最多几种方案
/*
* 2553_1.cpp
*
* Created on: 2013年8月16日
* Author: Administrator
*/
#include <iostream>
using namespace std;
int sum,m;
int queen[11];
int method[11];
//用来判断是否同行或者是同斜线
bool check(int n){
int i;
for( i = 0 ; i < n ; ++i){
/**
*为什么只需要判断是否同列或者同一斜线即可呢??不需要判断同行吗??
* 因为i指的就是行,而i是递增的,所以行就是递增的。所以行肯定不同
*
* queen
= i;其中n是行的数目,也是皇后的数目,i是列的数目
* queen[i] == queen
:是否同列
* abs(queen[i] - queen
) == (n - i) :判断是否在一条斜线上(只需要判断底和高是否相等即可)
*/
if(queen[i] == queen
|| abs(queen[i] - queen
) == (n - i)){
return 1;
}
}
return 0;
}
void put(int n){
int i;
for( i = 0 ; i < m ; ++i){
queen
= i;
if(!check(n)){
if( n == m-1){
++sum;
}else{
put(n+1);
}
}
}
}
int main(){
while(scanf("%d",&m)!=EOF,m){
memset(queen,0,sizeof(queen));
sum = 0;
if(method[m] != 0){
printf("%d\n",method[m]);
}else{
put(0);
method[m] = sum;
printf("%d\n",sum);
}
}
}
/*
* 2553_1.cpp
*
* Created on: 2013年8月16日
* Author: Administrator
*/
#include <iostream>
using namespace std;
int sum,m;
int queen[11];
int method[11];
//用来判断是否同行或者是同斜线
bool check(int n){
int i;
for( i = 0 ; i < n ; ++i){
/**
*为什么只需要判断是否同列或者同一斜线即可呢??不需要判断同行吗??
* 因为i指的就是行,而i是递增的,所以行就是递增的。所以行肯定不同
*
* queen
= i;其中n是行的数目,也是皇后的数目,i是列的数目
* queen[i] == queen
:是否同列
* abs(queen[i] - queen
) == (n - i) :判断是否在一条斜线上(只需要判断底和高是否相等即可)
*/
if(queen[i] == queen
|| abs(queen[i] - queen
) == (n - i)){
return 1;
}
}
return 0;
}
void put(int n){
int i;
for( i = 0 ; i < m ; ++i){
queen
= i;
if(!check(n)){
if( n == m-1){
++sum;
}else{
put(n+1);
}
}
}
}
int main(){
while(scanf("%d",&m)!=EOF,m){
memset(queen,0,sizeof(queen));
sum = 0;
if(method[m] != 0){
printf("%d\n",method[m]);
}else{
put(0);
method[m] = sum;
printf("%d\n",sum);
}
}
}
相关文章推荐
- HDU 2553 N皇后问题
- hdu 2553(N皇后问题)
- HDU——2553 N皇后问题(dfs打表)
- HDU 2553 N皇后问题
- (hdu step 4.3.6)N皇后问题(使用DFS来解决)
- week8(第二波搜索进阶) A -hdu 2553 N皇后问题
- HDU 2553 N皇后问题
- HDU 2553 N皇后问题
- hdu 2553 N皇后问题(dfs)
- HDU 2553 N皇后问题
- hdu 2553 hdu n皇后问题
- HDU 2553 N皇后问题 (DFS)
- HDU 2553 N皇后问题(DFS)
- hdu 2553 n皇后问题
- HDU 2553 N皇后问题
- hdu 2553 N皇后问题(回溯)
- 【HDU 2553】 N皇后问题
- HDU 2553 N皇后问题(深搜)
- HDU 2553 N皇后问题
- N皇后问题_hdu_2553