八皇后问题
来源:互联网 发布:高分数据是什么 编辑:程序博客网 时间:2024/05/29 10:10
算法分类:
回溯
算法原理:
简单的深搜迭代
代码实现(北大百练 2698):
/* Author: jokes000 * 北大百练 2698 * 八皇后问题 */#include <stdio.h>#include <string.h>const int N = 8;// 棋盘大小int C[N];// 存储每个皇后所在位置bool G[N][N];// 用于输出中转换行列int cnt;bool isQualified(int column) {// 确定所在行无皇后for (int i = 0; i < column; ++ i) {if (C[column] == C[i] && column != i)return false;}// 确定对角线方向无皇后for (int i = 0; i < column; ++ i) {if (C[column] - C[i] == i - column || C[column] - C[i] == column - i) {return false;} }return true;};void output() {int i, j;printf("No. %d\n",++cnt);memset(G, 0, sizeof(G));for (i = 0; i < N; ++ i) {G[C[i]][i] = true;}for (i = 0; i < N; ++ i) {for (j = 0; j < N-1; ++ j)printf("%d ",G[i][j]);printf("%d\n",G[i][j]);}}void Queens(int pos) {for (int i = 0; i < N; ++ i) {C[pos] = i;if (isQualified(pos)) {if (pos+1 < N) {Queens(pos+1);} else {output();}}}};int main(){// 初始化变量memset(C, -1, sizeof(C));cnt = 0;Queens(0);}
- 八皇后 n皇后 问题
- 八皇后N皇后问题
- 八皇后问题
- 八皇后问题
- 八皇后问题
- 八皇后问题(2)
- 八皇后问题(3)
- 八皇后问题
- 八皇后问题程序
- 浅谈八皇后问题
- 八皇后问题
- 八皇后问题
- 八皇后问题
- 八皇后问题
- 八皇后问题求解
- 八皇后问题
- 八皇后问题
- 八皇后问题
- 自我安慰一下
- libcurl的回调函数们
- 五个求解算法问题的方法
- MFC中 将单文档视图修改为多文档(如此简单)
- Win8小问题解决
- 八皇后问题
- 大数据应用时代来袭 SaaS走向没落?
- String literals in formulas can't be bigger than 255 characters ASCII
- Matlab--------------如何让MATLAB程序运行不显示警告
- [objective-c]教程七-----反思Objective-C类
- 不用除法运算,实现A/3
- 公司以及环境以及学习模式
- jndi 数据源配置密码加密
- 自动切换IE代理设置: 简单使用IE自动配置脚本