hdu 2553 N皇后问题(递归)
2014-04-03 20:37
148 查看
#include<iostream> #include<stdio.h> using namespace std; int N,sum; int m[11][11]; int isok(int x,int y) { for(int i=0;i<=x;i++) if(m[i][y]==1)return 0; for(int i=0;i<N;i++) if(m[x][i]==1)return 0; for(int i=x,j=y;i>=0&&j<N;i--,j++) if(m[i][j]==1)return 0; for(int i=x,j=y;i>=0&&j>=0;i--,j--) if(m[i][j]==1)return 0; return 1; } int dfs(int x,int y,int n) { if(n==0) { sum++; return 1; } x++; for(int j=0;j<N;j++) if(isok(x,j)) { m[x][j]=1; n--; dfs(x,j,n); n++; m[x][j]=0; } } int init() { for(int i=0;i<11;i++) for(int j=0;j<11;j++) m[i][j]=0; } int main() { int a[11]; for(int i=1;i<11;i++) { sum=0; init(); N=i; dfs(0,0,i); a[i]=sum; //cout<<i<<"="<<a[i]<<endl; } while(cin>>N,N) cout<<a <<endl; return 0; }
View Code
http://acm.hdu.edu.cn/showproblem.php?pid=2553
相关文章推荐
- HDOJ/HDU 2553 N皇后问题 回溯加递归
- N皇后问题 HDU 杭电2553【递归回溯】
- hdu 2553 N皇后问题(深度递归搜索)
- HDU 2553 N皇后问题(递归深搜)
- HDU 2553 N皇后问题(递归搜索)
- hdu 2553 N皇后问题 (简单版_递归)
- hdu 2553 n皇后问题。
- HDU 2553 N皇后问题 DFS 简单题
- HDU 2553 N皇后问题
- HDU 2553 N皇后问题(深搜DFS)
- HDU_2553——n皇后问题,作弊
- HDU 2553 N皇后问题 dfs回溯+打表
- HDU 2553 N皇后问题
- HDU 2553 N皇后问题 DFS
- HDU 2553 N皇后问题
- 【DFS】hdu 2553 N皇后问题
- HDU 2553 N皇后问题
- HDU 2553 N皇后问题
- HDU - 2553 N皇后问题
- 【HDU 2553】 N皇后问题