n皇后(C++)
2015-12-22 20:03
459 查看
#include<cstdio> int n,ans,x[20]; bool a[20],b[20],c[20];//判断列,对角线 void dfs(int k,int h) { if(k==n){ans++;return;} for(int i=1;i<=n;i++)//for循环循环行 { if(a[i]==0&&b[h+i]==0&&c[h+n-i]==0) { a[i]=1;b[h+i]=1;c[h+n-i]=1; x[k+1]=i;dfs(k+1,h+1); a[i]=0; b[h+i]=0; c[h+n-i]=0; } } } int main() { scanf("%d",&n); dfs(0,1); printf("%d",ans); }
相关文章推荐
- 学习资源传送门
- C++ cout格式化输出(转)
- C语言中变量未赋值问题总结
- C语言基础
- C语言总结
- C++中placement new操作符(经典)
- Modern C++读书笔记
- 关于vc++ runtime error解决方法汇总
- C++: typename in a template template parameter
- c语言:统计整数二进制表示中1的个数(汉明重量)
- 二叉堆 C++实现
- c++学习日记2015.12.22
- C++11中的std::bind 之二
- C/C++术语知识大杂烩
- C++11中的std::bind
- C++后台程序编写
- C++的运算符重载
- c#调用C++DLL相关
- No symbol "xxx" in current context
- OC语言-03NSString