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

梁平网站搭建网站的步骤

梁平网站,搭建网站的步骤,电脑网页怎么下载视频,乐平网站建设咨询题目 来源 843. n-皇后问题 - AcWing题库 思路 引自:AcWing 843. n-皇后问题--图解代码注释 - AcWing 核心思路:深度优先遍历 函数名:void dfs(int r): 深度优先遍历函数。参数r:从第r行开始放棋子,处理第r行。 递归…

题目

来源

843. n-皇后问题 - AcWing题库

思路

引自:AcWing 843. n-皇后问题--图解+代码注释 - AcWing

核心思路:深度优先遍历

函数名:void dfs(int r): 深度优先遍历函数。参数r:从第r行开始放棋子,处理第r行。

递归结束判定:见代码,当 r == n的时候,说明应该处理第 n行了,也代表第 0~n-1行放好棋子,也就是整个棋盘放好了棋子,也就是得到了一种解,也就是递归结束。

第r行,第i列能不能放棋子:用数组dg udg cor 分别表示:点对应的两个斜线以及列上是否有皇后。
dg[i + r] 表示 r行i列处,所在的对角线上有没有棋子,udg[n - i + r]表示 r行i列处,所在的反对角线上有没有棋子,cor[i]表示第i列上有没有棋子。如果 r行i列的对角线,反对角线上都没有棋子,即!cor[i] && !dg[i + r] && !udg[n - i + r]为真,则代表 r行i列处可以放棋子。


 n - i + r和i + r其实就是一个小trick,b=y-x或者b=y+x;+n是为了防止出现负数越界

代码

#include<bits/stdc++.h>
using namespace std;
const int N=20;
char dg[N],udg[N],col[N];
char q[N][N];
// int r; //表示每行,一行一行去处理
int n;
void dfs(int r){if(r==n){for(int i=0;i<n;i++){for(int j=0;j<n;j++){cout<<q[i][j];}cout<<endl;            }cout<<endl;return;}for(int i=0;i<n;i++){if(!col[i]&& !dg[i+r] && !udg[n-i+r]){q[r][i]='Q';col[i]=dg[i+r]=udg[n-i+r]=1;dfs(r+1);col[i]=dg[i+r]=udg[n-i+r]=0;q[r][i]='.'; //这里也是要恢复现场的}}}
int main(){cin>>n;for(int i=0;i<n;i++){for(int j=0;j<n;j++){q[i][j]='.';}}dfs(0);return 0;
}
http://www.dtcms.com/wzjs/564860.html

相关文章:

  • 美食网站开发意义平台网站开发公司
  • 公司网站建设实施方案中国城市建设研究院深圳分院网站
  • 山东省城乡建设部网站最新网推项目
  • 如何做网站活动封面wordpress固定链接设置404
  • 网站建设先进部门评选标准企业网站 价格
  • 网站建设课程的建议公司外贸网站
  • 没有网站可以做cpa杭州萧山区专门做网站的公司
  • 网站点播视频如何做黄岩城市建设发展集团网站
  • 想办个网站怎么做高端企业网站建设流程
  • 大连 建网站代理浏览器
  • 互联网客户做网站建设网站赚钱
  • php网站后台无法上传图片wordpress标签归类
  • 微网站 功能四川已经取消48小时核酸检测
  • 江门百度网站快速优化wordpress中文 插件下载
  • 找学校的网站买友情链接有用吗
  • 网站制作有名 乐云践新专家营销软文网站
  • 网站建设的利益如何制作wordpress模板下载地址
  • 做健身网站步骤关于网站建设文章
  • 建站的网站网站开发可能存在的困难
  • 用dw做的网站怎么发布网址广告
  • 网站建设投诉去哪里投诉网站怎么做视频的软件
  • 佛山市骏域网站建设网站建设方案主要有
  • 网站建设的代理neutral wordpress
  • 企业网站php源码wordpress 前端用户中心
  • 嘉兴网站推广平台万网域名购买
  • 做网站能不能放暴露图片安徽湖滨建设集团有限公司网站
  • 重庆选科网站wordpress自定义文章类型模板
  • 建站工具 phpwind小程序和公众号的关系
  • 网站后台表格网站续费要多少钱
  • 网站建设文本居中代码襄樊市网站建设公司