八皇后问题深度遍历搜索
来源:互联网 发布:淘宝怎么提现到支付宝 编辑:程序博客网 时间:2024/06/05 18:16
八皇后问题我就不再这里说明题意了
我在这里说说限定条件
q(x,y) Q(x1,y1)
有以下四个限定条件
(1)x=x1
(2)y=y1
(3)x+y=x1+y1
(4)x-y=x1-y1
用到算法中就这样有92组解
#include <cstdio>#include <cstring>#include <cmath>using namespace std;int x[10], n;int num;bool ok(int k) { for(int i = 0; i < k; i++) if(x[i] == x[k] || abs(i-k) == abs(x[i]-x[k])) //限定条件 return 1; return 0;}void dfs(int q) { if(q == 8) { printf("%d\n", ++num); for(int i = 0; i < n; i++) printf("%d ", x[i]+1); printf("\n"); return; } for(int i = 0; i < n; i++) { //所有列摆放的位置,列坐标的情况也就都考虑,这样就铜盘考虑了 x[q] = i; if(ok(q)) continue;<span style="white-space:pre"></span> <span style="white-space:pre"></span> //如果这个位置不能摆放则,跳出这一层,因为这一层冲突,回到上一个皇后的位置再次寻找合适的位置 else dfs(q+1); }}int main() { scanf("%d", &n); num = 0; for(int i = 0; i < n; i++) { //第一行可以摆放的位置 横坐标的所有情况就有了 x[0] = i; // 第一个皇后的位置 dfs(1); } return 0;}
0 0
- 八皇后问题深度遍历搜索
- 八皇后问题与深度优先搜索
- 八皇后问题深度优先遍历回溯算法的应用
- 利用深度搜索法解决八皇后问题
- 深度优先搜索——八皇后问题
- 八皇后问题 递归搜索
- 搜索之八皇后问题
- 洛谷Oj-八皇后-深度优先搜索
- 深度优先算法解决“八皇后问题”
- 八皇后问题_____递归线性搜索
- 搜索算法-讲解[八皇后问题]
- 局部搜索思想求解八皇后问题
- 八皇后问题之一(枚举+搜索)
- //回溯法搜索八皇后问题
- 【深度优先搜索】最小皇后问题
- HDU-N皇后问题-DFS深度搜索
- 经典的四皇后问题深度搜索
- 深度优先搜索--N皇后问题
- 判断任一给定整数N是否满足条件: 它是完全平方数,又至少有两位数字相同,如144、676等。
- Ajax 跨域请求的解决方案
- myeclipse10创建maven项目pom.xml报错
- Linux 变量类型
- activity去除标题栏title
- 八皇后问题深度遍历搜索
- 随笔
- 数组操作
- C与汇编混合编程(1)
- 派生类的三种继承方式总结
- 合并排序实现
- C++中的虚函数(一)
- Android Studio添加依赖时出现“Manifest merger failed”
- iOS容易造成循环引用的三种场景,就在你我身边!