hdu 2553 八皇后问题 基础
来源:互联网 发布:linux中ll命令 编辑:程序博客网 时间:2024/05/26 17:44
题意:给你一个n*n的棋盘,要求放n个皇后;
<span style="font-size:18px;">#include <iostream>#include <cstdio>#include <cstring>#include <cstdlib>#include <cmath>#include <vector>#include <queue>#include <map>#include <algorithm>#include <set>using namespace std;typedef long long ll;const double eps = 1e-10;const int inf = 0x3f3f3f3f;const double pi=acos(-1);const int mod=100000000;int max(int a,int b){return a>b?a:b;};int min(int a,int b){return a<b?a:b;};int n,l[12],lh[102],hl[102],ans[12];void dfs(int m,int p){ if(m==n-1) {ans[n]++;return;}//能够取到最后一层直接加; for(int j=0;j<n;j++) if(!l[j]&&!lh[j+m+1]&&!hl[n-1-j+m+1]) { l[j]=lh[j+m+1]=hl[n-1-j+m+1]=1; dfs(m+1,j); l[j]=lh[j+m+1]=hl[n-1-j+m+1]=0; }}int main(){ memset(ans,0,sizeof(ans)); ans[1]=1; for(n=2;n<=10;n++) { memset(l,0,sizeof(l)); memset(lh,0,sizeof(lh)); memset(hl,0,sizeof(hl)); for(int j=0;j<n;j++) { l[j]=lh[j]=hl[n-1-j]=1; dfs(0,j); l[j]=lh[j]=hl[n-1-j]=0; } } while(~scanf("%d",&n)&&n) printf("%d\n",ans[n]); return 0;}</span>
0 0
- hdu 2553 八皇后问题 基础
- 编程基础--八皇后问题
- hdu 1045 zoj1002 八皇后问题 dfs
- 八皇后 n皇后 问题
- 八皇后N皇后问题
- 八皇后问题,杭电2553
- 八皇后问题
- 八皇后问题
- 八皇后问题
- 八皇后问题(2)
- 八皇后问题(3)
- 八皇后问题
- 八皇后问题程序
- 浅谈八皇后问题
- 八皇后问题
- 八皇后问题
- 八皇后问题
- 八皇后问题
- Swift入门-Day 1
- Cpufreq framework 分析-1
- 10011---@SessionAttributes注解引发的异常
- 合作开发——心酸血泪
- 机器学习实战--adaboost
- hdu 2553 八皇后问题 基础
- 操作符重载
- COM组件注册方法(VC++)
- 【算法训练】区间k大数查询
- cocos2d-x 垃圾自动回收机制浅析
- makefile 模板
- Java day02 基本语句练习 进制转换
- RGB各种颜色对照表
- java多线程