八皇后问题 回溯
来源:互联网 发布:淘宝李宁乒乓球运动服 编辑:程序博客网 时间:2024/04/30 09:52
作为回溯法的典型,水一下。
题意:
棋盘上放置8个皇后,每个皇后的攻击范围为同行同列和同对角线。要求找出所有解,使得她们互不攻击。
分析:
回溯法。
逐行放置,对列和对角线进行检查,使用vis数组保存状态。回溯注意在各个出口都要将条件“恢复原状”。
代码:
#include<iostream>using namespace std;const int maxn = 25;int cnt = 0, m , n;int vis[3][maxn], ans[maxn];void dfs(int row){ if(row == n){ cnt++; return; } for(int i = 0; i < m; i++){ if(!vis[0][i]&&!vis[1][i- row + n] && !vis[2][i + row]){ vis[0][i] = vis[1][i - row + n] = vis[2][i + row] = 1; ans[row] = i;//打印解 dfs(row + 1); vis[0][i] = vis[1][i - row + n] = vis[2][i + row] = 0; } }}int main (void){ m = n = 8; dfs(0); cout<<cnt<<endl;}
0 0
- 八皇后问题 --回溯
- 回溯-八皇后问题
- 八皇后问题 回溯
- 八皇后问题(回溯)
- 八皇后问题 回溯
- 八皇后问题--回溯
- 回溯-八皇后问题
- 递归回溯--八皇后问题
- 回溯算法---八皇后问题
- 回溯算法-八皇后问题
- 八皇后问题 回溯法
- 八皇后问题 回溯法
- 八皇后问题(回溯)
- 八皇后问题(递归回溯)
- 八皇后问题回溯算法
- 八皇后问题 回溯法
- 八皇后问题-回溯法
- 八皇后问题|递归|回溯
- hdu2089 不要62 数位DP
- 【bzoj4071】[Apio2015]巴邻旁之桥 三分套三分
- 软工大作业·源物语(三)
- zhiliti
- 报错:The resource name must start with a letter
- 八皇后问题 回溯
- Arrayfire学习笔记(一)安装
- VC DAO 操作数据库
- Android4.2.2源码目录结构分析
- [leetcode 121] Best Time to Buy and Sell Stock---只能买卖股票一次的最大收益
- 增强for 循环
- 2015-蓝桥杯--格子中输出
- 测试
- JavaScript年月日三级联动