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

百度网站提交入口网址东莞模板网站设计

百度网站提交入口网址,东莞模板网站设计,大酒店网站源代码,网站怎么做响应式题目 来源 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/a/405021.html

相关文章:

  • 成功的营销网站怎么自己开发小程序
  • 企业网站推广策划书网页在线制作网站源码
  • 做视频网站需要什么职位工作wordpress企业 破解主题下载地址
  • 合肥建网站公司地址WordPress删除插件链接
  • 企业网站查询系统官网网站打不开别人能打开
  • 虚拟主机和网站空间wordpress cos 配置
  • 有免费建站的网站吗wordpress个人简历模板
  • 宁乡电商网站建设报价营销型网站建设平台
  • 网址交易网站门户设计方案
  • 山西建设执业资格注册管理中心网站江苏中淮建设集团有限公司网站
  • 网站模板下载后怎么使用网站建设模式
  • 网站建设技术需求网站三大标签设置
  • 嘉定网站建设企业所得税计算方式
  • 手机网站首页设计设计平面广告
  • wordpress获取所有文章列表淄博网络优化哪家专业
  • 住建部网站查询系统如何创建自己的域名
  • 做一个电子商城网站建设方案网页美工设计的要点
  • 搞一个网站多少钱网站建设实训报告2000字
  • 网站和管理系统的区别企业cms开源
  • 住房和城乡建设部干部学院网站湖南网站制作方案
  • 通辽网站制作公司grace+wordpress
  • seo网站推广工作内容wordpress主题花园
  • wordpress广告最后加载网站优化建设方案
  • 比较出名做耐克的网站免费的软件开发工具
  • 想做网站怎么做甜品制作网站
  • 网站开发 安全 承诺书国外网站购物
  • 济南网站seo顾问建设文化网站的目的和意义
  • 嘉兴网站关键词优化网站开发经理岗位职责
  • 福州集团网站建设那个免费做微信订阅号的网站
  • 如何做话费卡回收网站德州做网站优化