HDU2553-N皇后问题
来源:互联网 发布:淘宝卖家手机退款流程 编辑:程序博客网 时间:2024/05/22 12:31
N皇后问题
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 18886 Accepted Submission(s): 8549
Problem Description
在N*N的方格棋盘放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45角的斜线上。
你的任务是,对于给定的N,求出有多少种合法的放置方法。
你的任务是,对于给定的N,求出有多少种合法的放置方法。
Input
共有若干行,每行一个正整数N≤10,表示棋盘和皇后的数量;如果N=0,表示结束。
Output
共有若干行,每行一个正整数,表示对应输入行的皇后的不同放置数量。
Sample Input
1850
Sample Output
19210
Author
cgf
Source
2008 HZNU Programming Contest
#include <iostream>#include <cstdio>#include <cmath>#include <cstring>#include <algorithm>#include <stack>#include <queue>#include <vector>#include <map>using namespace std;#define ll long longint n,sum;int a[15];int x[15];void dfs(int k,int m){ if(k==m+1) { sum++; return; } for(int i=1; i<=m; i++) { a[k]=i; int j; for(j=1; j<=k-1; j++) { if((a[k]-a[j])==(k-j)||(a[k]-a[j])==(j-k)||a[j]==i) break; } if(j>=k) dfs(k+1,m); }}int main(){ for(int i=1; i<=10; i++) { sum=0; memset(a,0,sizeof a); dfs(1,i); x[i]=sum; } while(~scanf("%d",&n)&&n) printf("%d\n",x[n]); return 0;}
0 0
- hdu2553 N皇后问题
- HDU2553 N皇后问题
- HDU2553:N皇后问题
- hdu2553 n皇后问题
- hdu2553 N皇后问题
- hdu2553 n皇后问题
- HDU2553 N皇后问题
- N皇后问题 hdu2553
- HDU2553 N皇后问题
- HDU2553 N皇后问题
- HDU2553 N皇后问题
- HDU2553-N皇后问题
- HDU2553 N皇后问题
- hdu2553 n皇后问题
- hdu2553-N皇后问题.回溯
- HDU2553:N皇后问题(DFS)
- dfs HDU2553 N皇后问题
- N皇后问题(hdu2553)
- 重新安装Linux后Samba服务器无法访问的解决办法
- 设计模式之装饰者(Decorator)模式
- 为什么Struts、Spring、Hibernate框架可以被整合的问题
- linux笔记2
- 12. smarty
- HDU2553-N皇后问题
- THREE.JS之几何体(Geometry)
- Android activity的DecorView的层次结构
- 19
- HDU 5907 Find Q(水) —— BestCoder Round #88
- 代码的完整性-面试题11-数值的整数次方
- 【C++研发面试笔记】10. 基本数据结构-平衡二叉搜索树AVL
- python和pip安装新手教程
- ubuntu 16.04 安装 mysql