n皇后问题—回溯法 C++实现
来源:互联网 发布:java根据ip获取运营商 编辑:程序博客网 时间:2024/05/19 07:08
#include <iostream>#include <vector>using namespace std;bool isLegal(int row,int col,vector<string> &v,int n){for(int i=0;i<row;++i)if(v[i][col]=='Q') return false;for(int i=row-1,j=col-1;i>=0&&j>=0;--i,--j)if(v[i][j]=='Q') return false;for(int i=row-1,j=col+1;i>=0&&j<n;--i,++j)if(v[i][j]=='Q') return false;return true;}void snqHelp(vector<vector<string>> &res,vector<string> &v,int row,int n){if(row==n){res.push_back(v);return;}for(int col=0;col<n;++col){if(isLegal(row,col,v,n)){v[row][col]='Q';snqHelp(res,v,row+1,n);v[row][col]='.';}}}vector<vector<string>> solveNQueens(int n){vector<vector<string>> res;vector<string> v(n,string(n,'.'));snqHelp(res,v,0,n);return res;}int main(int argc, char const *argv[]){int n;cout<<"input n :";cin>>n;vector<vector<string>> res=solveNQueens(n);for(auto vstr:res){for(auto x:vstr)cout<<x<<endl;string line(2*n,'-');cout<<line<<endl;}cout<<"Total solution :"<<res.size()<<endl;return 0;}
阅读全文
0 0
- N皇后问题的回溯法实现
- n-皇后问题 C++实现 回溯法
- JAVA实现N皇后问题(回溯法)
- 回溯法求解 “n 皇后 问题”——Java 实现
- 回溯法求解n皇后问题——递归实现
- n皇后问题—回溯法 C++实现
- n皇后问题回溯法---java图形界面实现回溯过程
- n皇后问题-回溯法
- 【回溯法】n皇后问题
- N皇后问题,回溯法
- 回溯法---n皇后问题
- N皇后问题 【回溯法】
- 【回溯法】n皇后问题
- N皇后问题---回溯法
- N 皇后问题-回溯法
- N皇后问题--回溯法
- 回溯法.N皇后问题
- N皇后问题 回溯法
- 阿里云优惠码在哪里看?———详解阿里云优惠码和幸运券的使用技巧
- 使用hex编码绕过主机卫士IIS版本继续注入
- 使用Python抓取欧洲足球联赛数据
- 机器学习实战之第一章 机器学习基础
- 第三十一天
- n皇后问题—回溯法 C++实现
- hash冲突解决
- bzoj3625(NTT+多项式求逆+多项式开根)
- VMware vSphere Client 6.0 安装提示 vmwareRemoteConsole.dll 无法注册
- SESSION COOKIE详解
- Rotate Image
- 浅析MVP设计模式
- 使用Python定制词云
- LeetCode-Reverse Nodes in k-Group