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

南阳做网站价格网站建设 ipv6

南阳做网站价格,网站建设 ipv6,做网页要去哪个网站,WordPress影视cms目录题目思考AC代码题目 n 皇后问题研究的是如何将 n 个皇后放置在 nn 的棋盘上#xff0c;并且使皇后彼此之间不能相互攻击。 思考 首先以N4为例#xff0c;画出解空间树的一部分#xff1a; 根据模板#xff1a; void backtracking(参数) {if(终止条件){存放结果… 目录题目思考AC代码 题目 n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上并且使皇后彼此之间不能相互攻击。 思考 首先以N4为例画出解空间树的一部分 根据模板 void backtracking(参数) {if(终止条件){存放结果;return;}for(选择本层集合中元素(树中结点孩子的数量就是集合的大小)){处理结点;backtracking(路径,选择列表); //递归回溯撤销处理结果;} }1、确定回溯函数参数,返回值 当前所在的行(层)当前的棋盘布局。 N的大小 void backtracking(int hang,vectorstring chessboard,int n)全局变量vectorvectorresult; result是个存放chessboard的变量。 这里的chessboard就相当于之前回溯题目中的path、子结果。 2、确定终止条件 当遍历到N的最后一层(n-1)时再往下一层我们就需要返回了。 if(hang n) {result.push_back(chessboard);return ; }3、确定单层逻辑 如果本行的某列放入皇后且不违反规则即可进入下一行探索 for(int lie 0;lie n ;lie) {if(juge_if_valid(hang,lie,chessboard,n) true){chessboard[hang][lie] Q; //放置皇后backtracking(hang1,chessboard,n);chessboard[hang][lie] .; //回溯撤销}}4、判断是否满足分布条件有三个 1、皇后不在同一行 2、皇后不在同一列 3、皇后不在同一斜线上 a、同时我们注意我们探索的时候就是按照深度探索的所以保证了每一行只有一次赋值Q。所以第一个条件不需要特别处理。 b、由于按照深度往下搜索所以判断皇后在同一列的时候可以剪枝 //检查本行之上的行的同一列是否存在Q for(int i0;ihang;i) {if(chessboard[i][lie] Q) return false; }c、由于按照深度往下探索所以判断皇后在同一斜线的时候可以剪枝(注意斜线分为向右上斜和左上斜两个方向) //检查本行之上的行的右斜线上是否有皇后 for(int ihang-1,jlie-1;i0 j0;i--,j--) {if(chessboard[i][j] Q) return false; } //检查本行之上的行的左斜线上是否有皇后 for(int ihang-1,jlie1;i0 jn;i--,j) {if(chessboard[i][j] Q) return false; }AC代码 class Solution { public:vectorvectorstringresult;bool juge_if_valid(int hang,int lie,vectorstringchessboard,int n){//检查本行之上的行的同一列是否存在Qfor(int i0;ihang;i){if(chessboard[i][lie] Q) return false;}//检查本行之上的行的右斜线上是否有皇后for(int ihang-1,jlie-1;i0 j0;i--,j--){if(chessboard[i][j] Q) return false;}//检查本行之上的行的左斜线上是否有皇后for(int ihang-1,jlie1;i0 jn;i--,j){if(chessboard[i][j] Q) return false;}return true;} void backtracking(int hang,vectorstring chessboard,int n){if(hang n){result.push_back(chessboard);return ;}for(int lie 0;lie n ;lie){if(juge_if_valid(hang,lie,chessboard,n) true){chessboard[hang][lie] Q; //放置皇后backtracking(hang1,chessboard,n);chessboard[hang][lie] .; //回溯撤销}}return ;}vectorvectorstring solveNQueens(int n) {result.clear();//填充初始棋盘vectorstring chessboard(n,string(n,.));backtracking(0,chessboard,n);return result;} };
http://wiki.neutronadmin.com/news/122662/

相关文章:

  • 网站调用谷歌地图怎样做网络推广为什么要做网络推广
  • 西安地区专业做网站公司库尔勒 网站建设
  • 建立网站目录结构时应注意哪几个方面?python电影天堂源码
  • 怎么做网络直播卖衣服的网站购物型网站怎么快速被百度收录
  • 贵阳网站开发番禺建设网站多少钱
  • 做的网站怎样百度能搜到中心网站建设方法
  • 论文网站开发城市建设法规考试网站
  • 网站开发好吗仿 手机 网站模板html源码下载
  • 编程网站项目做哪个比较好网站不想被收录
  • 黔西南州网站建设厦门房地产网站建设
  • 网站优化资源网站建设怎么添加视频
  • 建设c2c网站需要多少投资如何做京东购物网站
  • 义乌建设公司网站网站开发什么语言比较快
  • wordpress修改密码关键词搜索优化公司
  • 业务网站制作开发一个网页具体流程
  • 安庆市建设局网站开公司做购物网站是不是想多了
  • 公司注册网站有什么好处网站开发个人总结
  • 个人网站名称 备案微信引流推广怎么做
  • 做金融网站违法吗临沂网站建设找谁
  • idc销售网站源码微网站建设报价方案
  • 简历在线制作网站织梦电子行业网站模板
  • 班级网站制作教程建立网站tk
  • 怎么做刷业网站云南建设投资控股集团有限公司网站
  • 厦门协会网站建设网站的标题与关键词
  • 广告传媒网站模板网络整合营销的概念
  • 网站基础建设网站建设及维护保密协议
  • 自己做的网站微信pc端显示乱码营销型网站定做
  • 做现货需要关注的网站ec2 wordpress
  • 互联网大赛建设网站策划书信息发布网站开发
  • 创建个人商城网站建网站开发费用