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

江门做网站公司开网络公司外贸网站seo

江门做网站公司开网络公司,外贸网站seo,wordpress 行高,产品免费发布平台题目 来源 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/4641.html

相关文章:

  • 美食网站建设项目预算营销技巧培训
  • 在哪个网站做推广比较好如何在互联网上做推广
  • 网站开发师是做什么的国内最好用免费建站系统
  • 西安市城乡建设管理局网站6app注册推广拉人
  • 网站access数据怎么做腾讯竞价广告
  • 阿里巴巴免费做国际网站东莞市优速网络科技有限公司
  • 知名网站建设定制长沙seo优化价格
  • 南昌网站建设 南昌做网站公司深圳最新消息
  • 淘掌门官方网站企业qq手机版
  • 网站如何做映射吉林seo刷关键词排名优化
  • 龙信建设集团有限公司网站百度风云榜小说排行榜历届榜单
  • 百度网站改版提交上海网站推广服务公司
  • html5怎么做简单的网站网站开发从入门到实战
  • 做暖暖视频网站大全页面设计漂亮的网站
  • 汕头站扩建什么时候完成投诉百度最有效的电话
  • 网站制作一个人可以做吗快速提高网站关键词排名优化
  • 杭州置地电商基地网站建设南宁seo排名外包
  • 网站建设模式有哪些东莞网站建设推广哪家好
  • wordpress插件ERPseo网站关键词优化哪家好
  • 网站过度优化哈尔滨百度网站快速优化
  • 网站建设利润 有多少百度网址安全检测中心
  • 美食网站建设策划方案广州网络公司
  • 做网站的步骤是什么关键词推广方式
  • 网站安全注意哪些问题吗100个免费推广b站
  • 长安响应式网站建设引擎优化是什么工作
  • 安徽网新网站建设长沙seo网络推广
  • 高端网站开发费用软文街怎么样
  • 网站内页seo宁波seo排名费用
  • 网站模版免费引流软件
  • 晋中推广型网站建设优化的近义词