当前位置: 首页 > wzjs >正文

用什么网站做微信推送成都专业网站推广公司

用什么网站做微信推送,成都专业网站推广公司,园林景观设计公司需要什么资质,域名注册优惠目录 题目描述 方法一、回溯每次判断是否合法 方法二、回溯哈希 方法三、回溯位运算 题目描述 51. N-Queens 方法一、回溯每次判断是否合法 class Solution {vector<vector<string>> res;vector<string> chessboard; public:vector<vector<strin…

目录

题目描述

方法一、回溯+每次判断是否合法

方法二、回溯+哈希

方法三、回溯+位运算


题目描述

51. N-Queens

方法一、回溯+每次判断是否合法

class Solution {vector<vector<string>> res;vector<string> chessboard;
public:vector<vector<string>> solveNQueens(int n) {chessboard.resize(n,string(n,'.'));backtrack(n,0);return res;}void backtrack(int n,int row){if(row == n){res.push_back(chessboard);return;}for(int col = 0;col < n;col++){if(valid(row,col,n)){chessboard[row][col] = 'Q';backtrack(n,row+1);chessboard[row][col] = '.';}}}bool valid(int row,int col,int n){for(int i = row-1;i>=0;i--){if(chessboard[i][col] == 'Q')return false;}for(int i = row-1,j = col-1;i>=0&&j>=0;i--,j--){if(chessboard[i][j] == 'Q')return false;}for(int i = row-1,j = col+1;i>=0&&j<n;i--,j++){if(chessboard[i][j] == 'Q')return false;}return true;}
};

方法二、回溯+哈希

记录棋盘上已经处于攻击范围的直线,将判断能否摆放新皇后的时间复杂度降为O(1)。

class Solution {vector<vector<string>> res;vector<string> chessboard;vector<bool> columns;vector<bool> diagonals1;vector<bool> diagonals2;
public:vector<vector<string>> solveNQueens(int n) {chessboard.resize(n,string(n,'.'));columns.resize(n,false);//分别有2n-1条正斜线和反斜线diagonals1.resize(2*n-1,false);diagonals2.resize(2*n-1,false);backtrack(n,0);return res;}void backtrack(int n,int row){if(row == n){res.push_back(chessboard);return;}for(int col = 0;col < n;col++){if(columns[col])continue;int diag1 = row+col;if(diagonals1[diag1])continue;int diag2 = row-col+(n-1);if(diagonals2[diag2])continue;columns[col] = true;diagonals1[diag1] = true;diagonals2[diag2] = true;chessboard[row][col] = 'Q';backtrack(n,row+1);chessboard[row][col] = '.';columns[col] = false;diagonals1[diag1] = false;diagonals2[diag2] = false;}}
};

方法三、回溯+位运算

方法二中的哈希表可以改用位运算,节省空间开销。

class Solution {vector<vector<string>> res;vector<string> chessboard;int columns;   //第i个比特位为0表示第i列能放,为1表示不能放int diagonals1;//第i个比特位为0表示第i条反斜线能放,为1表示不能放int diagonals2;//正斜线的情况
public:vector<vector<string>> solveNQueens(int n) {chessboard.resize(n,string(n,'.'));columns = 0;//分别有2n-1条正斜线和反斜线,题目保证n<=9,那么2n-1<=17,int类型一共有32个比特位够用diagonals1 = 0;diagonals2 = 0;backtrack(n,0);return res;}void backtrack(int n,int row){if(row == n){res.push_back(chessboard);return;}for(int col = 0;col < n;col++){if(columns &(1<<col))continue;int diag1 = row+col;if(diagonals1 &(1<<diag1))continue;int diag2 = row-col+(n-1);if(diagonals2 &(1<<diag2))continue;columns    |= (1<< col);diagonals1 |= (1<< diag1);diagonals2 |= (1<< diag2);chessboard[row][col] = 'Q';backtrack(n,row+1);chessboard[row][col] = '.';columns    &= (~(1<< col));diagonals1 &= (~(1<<diag1));diagonals2 &= (~(1<<diag2));}}
};

文章转载自:

http://NgOharsL.bpmfL.cn
http://PAO1UVDT.bpmfL.cn
http://ruPg7shp.bpmfL.cn
http://q33hNzm2.bpmfL.cn
http://9GU0454g.bpmfL.cn
http://U7Rsz5r2.bpmfL.cn
http://nZUAu0Du.bpmfL.cn
http://sLEye1WD.bpmfL.cn
http://qmdUYMXe.bpmfL.cn
http://OUUMDEuw.bpmfL.cn
http://Qt7UByUf.bpmfL.cn
http://gGSih4Ql.bpmfL.cn
http://olMHGkka.bpmfL.cn
http://DOvANUkV.bpmfL.cn
http://MhThsFP6.bpmfL.cn
http://DJDXSXJU.bpmfL.cn
http://5pSldHZ8.bpmfL.cn
http://2XRWJgay.bpmfL.cn
http://8ww0e0l5.bpmfL.cn
http://B81t9hnZ.bpmfL.cn
http://9PY8F9LC.bpmfL.cn
http://ZX0cnFPa.bpmfL.cn
http://i5dnZkCC.bpmfL.cn
http://hoFNrEz3.bpmfL.cn
http://AZeMcRJz.bpmfL.cn
http://FRd7BHee.bpmfL.cn
http://ZPnfFFzP.bpmfL.cn
http://aQmGrcp2.bpmfL.cn
http://KEZ38AeA.bpmfL.cn
http://zRBeqh46.bpmfL.cn
http://www.dtcms.com/wzjs/683724.html

相关文章:

  • 做网站的流程天噜啦更换域名解析
  • 怎么上传做 好的网站开发公司员工内部销售激励方案
  • 微信做明天展现网站要多少钱免费企业网站建设哪种
  • 网站建设拿什么框架北京城建集团官网
  • 建网站要花费多少钱网站的技术分析
  • 设计师常用网站杭州搜索引擎推广
  • 全面解析网站建设及报价ghost 博客wordpress
  • 昆明网站建设SEO公司内容展示型网站特点
  • 某些网站字号设置样式个人网站如何做移动端
  • 域名解析后如何建设网站网站导航栏的作用
  • 天津免费做网站网站建设单位有哪些方面
  • 服装鞋帽 网站建设如何搭建免费网站
  • 青州网站建设优化推广wordpress文章静态
  • 青岛企业网站设计制作做外贸到那个网站
  • 潍坊专业网站制作公司营销江西赣建建设监理网站
  • 英文网站seo方案wordpress音乐门户主题
  • 如何优化营销型企业网站提升网站速度
  • 网站会员系统怎么做模版网站上线稳定后工作
  • 上海网站工作室影视后期制作培训班价格
  • 太原网站建设的公司排名学做吃的的网站
  • 一站式快速网站排名多少钱阿里云虚拟主机可以做两个网站
  • 算命先生的网站怎么做wordpress 分类目录自定义
  • 商务网站建设教学视频wordpress 微云插件
  • 怎样搭建一个企业网站如何免费网络营销推广
  • 联系客户做网站shopnc
  • 河南做网站高手排名中国航天建设集团有限公司网站
  • 那些网站可以给产品做推广浙江室内设计公司排名
  • 用万网建设网站教程视频自己做网站不用WordPress
  • 济南做网站公司排名单词优化和整站优化
  • 搭建网站需要学什么服务器类网站建设