HDU 2553 : N皇后问题
来源:互联网 发布:数控车编程软件 编辑:程序博客网 时间:2024/06/04 23:18
N皇后问题
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Problem Description
在N*N的方格棋盘放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45角的斜线上。
你的任务是,对于给定的N,求出有多少种合法的放置方法。
你的任务是,对于给定的N,求出有多少种合法的放置方法。
Input
共有若干行,每行一个正整数N≤10,表示棋盘和皇后的数量;如果N=0,表示结束。
Output
共有若干行,每行一个正整数,表示对应输入行的皇后的不同放置数量。
Sample Input
1850
Sample Output
19210
#include <cstdio>#include <cstring>using namespace std;int MAXN;const int BOUNDER_MAX=16;/// LINE ROWint map[BOUNDER_MAX][BOUNDER_MAX];bool TryPlace(int Line,int Row){ if(map[Line][Row]==1) { return false; } for(int i=0; i<MAXN; i++) { if(map[Line][i]==1||map[i][Row]==1) return false; } /// Main Diagonal int CLine,CRow; if(Line<Row) { CLine=0; CRow=Row-Line; } else { CRow=0; CLine=Line-Row; } while(CLine<MAXN&&CRow<MAXN) { if(map[CLine][CRow]==1) { return false; } CLine++; CRow++; } /// Sub Diagonal if(Line+Row<=MAXN-1) { CLine=0; CRow=Line+Row; while(CLine<MAXN&&CRow>=0) { if(map[CLine][CRow]==1) return false; CLine++; CRow--; } return true; } else { CLine=MAXN-1; CRow=Line+Row-MAXN+1; while(CLine>=0&&CRow<MAXN) { if(map[CLine][CRow]==1) return false; CLine--; CRow++; } return true; }}int ans=0;void queen(int CurrentLine){ if(CurrentLine>=MAXN) { ans++; return; } for(int row=0; row<MAXN; row++) { if(TryPlace(CurrentLine,row)) { map[CurrentLine][row]=1; queen(CurrentLine+1); map[CurrentLine][row]=0; } }}int main(){ int n; while(scanf("%d",&n)==1&&n!=0) { ans=0; memset(map,0,sizeof(int)*BOUNDER_MAX*BOUNDER_MAX); MAXN=n; queen(0); printf("%d\n",ans); } return 0;}
1 0
- HDU 2553 N皇后问题
- HDU 2553 N皇后问题
- HDU 2553-N皇后问题
- hdu 2553 N皇后问题
- HDU-2553-N皇后问题
- Hdu 2553 N皇后问题
- hdu 2553 N皇后问题
- hdu 2553 N皇后问题
- HDU 2553 N皇后问题
- HDU--2553 -- N皇后问题
- hdu-2553--N皇后问题
- 2553--Hdu--N皇后问题
- N皇后问题 hdu 2553
- HDU 2553 N皇后问题
- hdu 2553 n皇后问题
- HDU 2553 N皇后问题
- hdu-2553-N皇后问题
- HDU-2553-N皇后问题
- iOS 获取客户端ip
- js传值到action出现中文乱码问题
- 201603242031
- poj2411(轮廓线动态规划)
- bzoj1588 [HNOI2002]营业额统计 裸splay
- HDU 2553 : N皇后问题
- 一点点小随笔:min-width
- 矩阵的奇异值分解
- AngularJS scope destroy 详解
- hdu 1542 线段树之扫描线之面积并
- 关于在Xcode中C语言的一个小问题:0x1
- memcached完全剖析--1. memcached的基础
- Linux下安装JDK(删除openjdk)
- org.dom4j.DocumentException: Error on line -1 of document : 文件提前结束