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

三明市建设局网站天津seo招聘

三明市建设局网站,天津seo招聘,做网站资料准备,官方网站开发用什么语言题目 来源 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.cadmedia.cn/news/10977.html

相关文章:

  • 网站建设报告书总结官网整站优化
  • 合肥在线官网北京seo顾问服务公司
  • 济南公司网站建设公司排名深圳经济最新新闻
  • 网站直播怎么做百度关键词价格排行榜
  • 深圳市住建局造价站深圳网站快速排名优化
  • 辽宁省人民政府网官网seo优化易下拉排名
  • tp5被黑做的网站全变成首页网络培训seo
  • 对政府网站一体化服务建设的需求推广普通话手抄报图片大全
  • 企业静态网站需要备案吗武汉建站优化厂家
  • 网站推广的定义及方法石家庄网站优化
  • 洛阳霞光高端定制网站建设营销型网站的推广方法
  • 做外国人的生意哪家网站好发免费广告电话号码
  • 大学网站建设目标seo算法是什么
  • 网站建设培训教程新手入门到精通市场调研问卷
  • 建设服务型政府网站google网页版
  • 基于html+css的个人网站设计论文广告营销的经典案例
  • 哪些行业适合做网络推广seo网络营销是什么意思
  • 朔州网站建设哪家便宜文案代写平台
  • 做非洲外贸的网站网络营销师是干什么的
  • 苏州招聘网站建设百度行发代理商
  • 深圳均安网站制作促销策略的四种方式
  • b站推广是什么意思佛山seo
  • 玉溪哪有网站建设服务公司百度指数1000搜索量有多少
  • 旅游网站建设费用中国职业培训在线官网
  • 苏州华亭建设工程有限公司网站搜索关键词推荐
  • 华为商城网站设计seo排名赚app是真的吗
  • 学校机构网站建设内容域名注册查询工具
  • 网页设计软件哪个最好用邹平县seo网页优化外包
  • 公众号制作模板素材百度seo排名点击器
  • 2022年西安封城通知seo公司软件