2014-03-20 04:08

题目:八皇后问题。

解法:DFS解决。

代码:

 // 9.9 Eight-Queen Problem, need I say more?
#include <cstdio>
#include <vector>
using namespace std; class Solution
{
public:
void eigthQueens(int n, vector<vector<int> > &result) {
if (n < ) {
return;
} vector<int> v;
dfs(, n, v, result);
v.clear();
}
private:
void dfs(int idx, int n, vector<int> &v, vector<vector<int> > &result) {
if (idx == n) {
result.push_back(v);
return;
} int i, j;
for (i = ; i < n; ++i) {
for (j = ; j < idx; ++j) {
if (v[j] == i || myabs(idx - j) == myabs(i - v[j])) {
// conflict
break;
}
}
if (j == idx) {
v.push_back(i);
dfs(idx + , n, v, result);
v.pop_back();
}
}
} int myabs(int n) {
return (n >= ? n : -n);
}
}; int main()
{
vector<vector<int> > result;
Solution sol;
int n;
int i, j, k; while (scanf("%d", &n) == && n > ) {
sol.eigthQueens(n, result);
for (k = ; k < (int)result.size(); ++k) {
for (i = ; i < n; ++i) {
for (j = ; j < result[k][i]; ++j) {
putchar('');
}
putchar('');
for (j = result[k][i] + ; j < n; ++j) {
putchar('');
}
putchar('\n');
}
putchar('\n');
}
printf("%d\n", (int)result.size());
for (i = ; i < (int)result.size(); ++i) {
result[i].clear();
}
result.clear();
} return ;
}

最新文章

  1. 一个用纯CSS实现的下拉菜单
  2. Mac系统下配置Maven环境变量
  3. IE6 7下常见CSS兼容性处理
  4. sap MD04中常用函数
  5. 使用my exclipse对数据库进行操作(2)
  6. bzoj 3143 [Hnoi2013]游走(贪心,高斯消元,期望方程)
  7. CentOS下编译安装hping3
  8. mybatis知识点
  9. ie6+7+8等对background-color:rgba(),background-img渐变的兼容
  10. POJ2533:Longest Ordered Subsequence(LIS)
  11. Nginx启动报错:10013: An attempt was made to access a socket in a way forbidden
  12. [翻译]Eureka一窥
  13. ES2:ElasticSearch 集群配置
  14. 06 Activity的启动模式 Intent的七大属性的总结
  15. 插播一则关于HTTP Headers详解~~~
  16. thymeleaf-在font标签中的使用
  17. Nginx 测试环境配置,留作笔记使用
  18. Python3 join函数和os.path.join用法
  19. python -m SimpleHTTPServer 8080
  20. 脚本学习 game.sh

热门文章

  1. Linux教程之:Nginx [emerg]: bind() to 0.0.0.0:80 failed (98: Address already in use)
  2. Windows Python 版本切换工具 --- Switch Python Version Tool For Windows
  3. webpack-dev-server启动后, localhost:8080返回index.html的原理
  4. MySQL安装和简单操作
  5. iis 7 操作 .net
  6. Python的socket编程
  7. 分页查询关键代码 多条件查询关键代码 删除选中商品关键代码 修改要先回显再修改 修改要先回显再修改 同一业务集中使用同一servlet的方法
  8. jquery操作DOM 元素(3)
  9. HDU.2111 Saving HDU(贪心)
  10. elasticsearch-dsl聚合-2