hdu 2553 N皇后问题
2017-08-26 16:30
176 查看
原题传送门:http://acm.hdu.edu.cn/showproblem.php?pid=2553
N皇后 由八皇后问题演变而来 据说当年高斯先生用人力算八皇后问题 没错 就是那个小学二年级发明等差数列求和公式的高斯 强如高斯 当初在算这个问题的时候也没有得到正确答案 还好今天我们有计算机
经典dfs问题 由于递归实现dfs比较慢 为了防止超时 可以提前打表
下面是AC代码
N皇后 由八皇后问题演变而来 据说当年高斯先生用人力算八皇后问题 没错 就是那个小学二年级发明等差数列求和公式的高斯 强如高斯 当初在算这个问题的时候也没有得到正确答案 还好今天我们有计算机
经典dfs问题 由于递归实现dfs比较慢 为了防止超时 可以提前打表
下面是AC代码
#include<stdio.h> #include<string.h> int n,count; int flag[11],map[11],ans[11]; int abs(int m) { if(m<0) return -m; return m; } void dfs(int h) { int i,j,t; if(h>n) { count+=1; return; } for(i=1;i<=n;i++) { if(!flag[i]) { map[h]=i; t=1; for(j=1;j<=h-1;j++) { if(abs(map[h]-map[j])==h-j) { t=0; break; } } if(t) { flag[i]=1; dfs(h+1); flag[i]=0; } } } return; } int main() { int i; for(i=1;i<=10;i++) { n=i; count=0; memset(map,0,sizeof(map)); memset(flag,0,sizeof(flag)); dfs(1); ans[i]=count; } while(scanf("%d",&i)!=EOF && i) { printf("%d\n",ans[i]); } return 0; }
相关文章推荐
- hdu 2553 N皇后问题<java>
- HDU 2553 N皇后问题
- HDU 2553 N皇后问题 深搜
- hdu 2553 N皇后问题
- HDU-2553 N皇后问题
- HDU 2553 N皇后问题
- hdu 2553 N皇后问题
- [ACM] hdu 2553 N皇后问题
- hdu 2553 N皇后问题 经典搜索,DFS解法
- HDU-2553-N皇后问题
- hdu-2553--N皇后问题
- 文章标题 HDU 2553 : N皇后问题 (DFS)
- HDU 2553 N皇后问题(dfs)
- HDU_2553——n皇后问题,作弊
- HDU 2553 N皇后问题 (回溯法)
- N皇后问题 HDU - 2553
- 【dfs+回溯】hdu 2553 N皇后问题
- [ACM] hdu 2553 N皇后问题
- (step4.3.2)hdu 2553(N皇后问题)
- hdu 2553 N皇后问题