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

阳江哪里做网站百度站长平台链接

阳江哪里做网站,百度站长平台链接,国家高新技术企业有多少家,网站url建设目录 一、问题概括 二、算法分析 三、举例(4皇后棋盘) 四、算法实现 4.1运行结果: 51. N 皇后 - 力扣(LeetCode) 一、问题概括 n皇后问题是19世纪著名数学家高斯于1850年提出的。 问题是:在nn的棋盘上…

目录

一、问题概括

二、算法分析

三、举例(4皇后棋盘)

 四、算法实现 

4.1运行结果:


51. N 皇后 - 力扣(LeetCode)

一、问题概括

        n皇后问题是19世纪著名数学家高斯于1850年提出的。

        问题是:在n×n的棋盘上摆放n个皇后,使其不能相互攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上。

二、算法分析

         按照国际象棋规则,皇后可以攻击与之在同一行或同一列或同一斜线上的棋子。

核心分析

        n后问题等价于在n×n格的棋盘上放置n个皇后,任何2个皇后不放在同一行同一列同一斜线上。 

         由以上问题与分析可知,棋盘每一行可以并且必须拜访1个皇后。

        1、那么n皇后问题的可能解用1个n元向量(x1,x2,......,xn)表示,即第i个皇后摆放在第i行第xi列的位置(1≤i≤n且1≤xi≤n)。

        2、由于两个皇后不能位于同一列,所以,n皇后问题的解的向量必须满足约束条件xi≠xj

        3、不在同一斜线上的约束条件|i-j|≠|xi-xj|。

三、举例(4皇后棋盘)

        下面将利用4皇后问题详细讲解。

       (Q代表皇后放置符号,×代表放置失败的符号)

        ①首先把皇后1摆放到所在第一行第一列

        ②皇后2本着不能与皇后1同行同列同斜线的原则 ,经过不懈努力尝试最终放置在了第二行第三列

        ③皇后3根据同样的原理(同行同列同斜线的原则)尝试了第三行的任何一列都冲突。

        ④因此进行回溯,将皇后2摆放到下一个位置, 即皇后2第二行第四列。

         ⑤皇后3再次本着同行同列同斜线的原则,摆放到第三行第二列。

        ⑥

                1、皇后4,摆放到第四行任何一列,都会违背同行同列同斜线的原则,进行回溯;

                2、发现皇后3除了摆放到第三行第二列不违背原则,其他列放置同样违背原则,因此我们继续回溯;

                3、但当我们此时回溯到皇后2时发现皇后2已经位于相应行最后一列了,所以我们只能继续回溯;

                4、回溯到皇后1,将皇后1摆放到第一行第二列。

        ⑦接下来,将皇后2摆放到第二行第四列,皇后3摆放到第三行第一列,皇后4摆放到第四行第三列的位置,便得到了4皇后问题的一个解。

 四、算法实现 

#include <stdio.h>
#include <stdlib.h>#define N 4  // 可以更改 N 的值来解决不同大小的皇后问题
int count = 0;void printBoard(int board[N][N]);// 函数来检查是否可以在 board[row][col] 放置皇后
int isSafe(int board[N][N], int row, int col) {int i, j;// 检查同一列for (i = 0; i < row; i++)if (board[i][col] == 1)return 0;// 检查左上对角线for (i = row, j = col; i >= 0 && j >= 0; i--, j--)if (board[i][j] == 1)return 0;// 检查右上对角线for (i = row, j = col; i >= 0 && j < N; i--, j++)if (board[i][j] == 1)return 0;return 1;
}// 函数来解决 N 皇后问题
void solveNQUtil(int board[N][N], int row, int& solutions) {// 如果所有皇后都放置完成if (row >= N) {solutions++;printBoard(board);return;}// 在当前行尝试放置皇后并递归地放置剩下的皇后for (int col = 0; col < N; col++) {// 检查放置皇后的位置是否安全if (isSafe(board, row, col)) {board[row][col] = 1;  // 放置皇后solveNQUtil(board, row + 1, solutions);  // 递归放置下一个皇后board[row][col] = 0;  // 回溯}}
}// 打印棋盘函数
void printBoard(int board[N][N]) {printf("Solution %d:\n", ++count);for (int i = 0; i < N; i++) {for (int j = 0; j < N; j++)printf("%d ", board[i][j]);printf("\n");}printf("\n");
}// 用于解决 N 皇后问题的主函数
void solveNQ() {int board[N][N] = { 0 };  // 初始化棋盘int solutions = 0;solveNQUtil(board, 0, solutions);printf("Total number of solutions are %d\n", solutions);
}// 主函数
int main() {solveNQ();return 0;
}

4.1运行结果:

         这个代码尝试在棋盘的每一行放置皇后,并使用递归来检查每个位置是否安全。如果找到一个安全的放置位置,就会递归地尝试下一行。这个过程一直重复,直到所有皇后都被放置在棋盘上。每次成功放置所有皇后时,它都会增加解决方案的数量,并打印出当前棋盘作为一个新的解决方案。 



文章转载自:
http://dinncojudicious.ydfr.cn
http://dinncoseafolk.ydfr.cn
http://dinncocolloquia.ydfr.cn
http://dinncoantimutagenic.ydfr.cn
http://dinncoencapsule.ydfr.cn
http://dinncogabelle.ydfr.cn
http://dinncopentahydrate.ydfr.cn
http://dinncocacodylic.ydfr.cn
http://dinncoslip.ydfr.cn
http://dinncofooper.ydfr.cn
http://dinncodirefully.ydfr.cn
http://dinncoborated.ydfr.cn
http://dinncograndchild.ydfr.cn
http://dinncogranitiform.ydfr.cn
http://dinncoscatback.ydfr.cn
http://dinncorefill.ydfr.cn
http://dinncoeuclidian.ydfr.cn
http://dinncoepilogist.ydfr.cn
http://dinncohypogastric.ydfr.cn
http://dinncomtbf.ydfr.cn
http://dinncoarteriotomy.ydfr.cn
http://dinncokarma.ydfr.cn
http://dinncorespectabilize.ydfr.cn
http://dinncopretend.ydfr.cn
http://dinncoparaplegic.ydfr.cn
http://dinncobreadthwise.ydfr.cn
http://dinncoheeled.ydfr.cn
http://dinncoacarpellous.ydfr.cn
http://dinncooutclearing.ydfr.cn
http://dinnconamable.ydfr.cn
http://dinncopoussin.ydfr.cn
http://dinncogenetical.ydfr.cn
http://dinncodesalinization.ydfr.cn
http://dinncolactescency.ydfr.cn
http://dinncomonoglot.ydfr.cn
http://dinncocoagulative.ydfr.cn
http://dinncooverrake.ydfr.cn
http://dinnconoggin.ydfr.cn
http://dinncoendearing.ydfr.cn
http://dinncocreativity.ydfr.cn
http://dinncobookrest.ydfr.cn
http://dinncoadjustable.ydfr.cn
http://dinncosiege.ydfr.cn
http://dinncostarboard.ydfr.cn
http://dinncosideshow.ydfr.cn
http://dinncojwb.ydfr.cn
http://dinncokilogramme.ydfr.cn
http://dinncoshortchange.ydfr.cn
http://dinncodetersive.ydfr.cn
http://dinncohouri.ydfr.cn
http://dinncoindescribably.ydfr.cn
http://dinncoheretical.ydfr.cn
http://dinncolisterism.ydfr.cn
http://dinncolienable.ydfr.cn
http://dinncoatlantis.ydfr.cn
http://dinncohyperdiploid.ydfr.cn
http://dinncopacify.ydfr.cn
http://dinncoduenna.ydfr.cn
http://dinncogreenlining.ydfr.cn
http://dinncomilon.ydfr.cn
http://dinncoeconomically.ydfr.cn
http://dinncoanabaena.ydfr.cn
http://dinncomarsh.ydfr.cn
http://dinncodomsat.ydfr.cn
http://dinncoanthill.ydfr.cn
http://dinncoholography.ydfr.cn
http://dinncoanglesmith.ydfr.cn
http://dinncoymir.ydfr.cn
http://dinncoabelmosk.ydfr.cn
http://dinncomultilayer.ydfr.cn
http://dinncobattlefield.ydfr.cn
http://dinncompls.ydfr.cn
http://dinncochromoplasm.ydfr.cn
http://dinncovatic.ydfr.cn
http://dinncounhandsomely.ydfr.cn
http://dinncoendoparasite.ydfr.cn
http://dinncomicroelement.ydfr.cn
http://dinncogauger.ydfr.cn
http://dinncosnug.ydfr.cn
http://dinncobeckon.ydfr.cn
http://dinncobooted.ydfr.cn
http://dinncolicet.ydfr.cn
http://dinncounsectarian.ydfr.cn
http://dinncocareerman.ydfr.cn
http://dinncochimere.ydfr.cn
http://dinncoemployer.ydfr.cn
http://dinncopounce.ydfr.cn
http://dinncomillimicro.ydfr.cn
http://dinncoelegance.ydfr.cn
http://dinncospaceless.ydfr.cn
http://dinncoorthodontia.ydfr.cn
http://dinncokonk.ydfr.cn
http://dinncopax.ydfr.cn
http://dinncoolla.ydfr.cn
http://dinncocurlew.ydfr.cn
http://dinncoichinomiya.ydfr.cn
http://dinncoevade.ydfr.cn
http://dinncoflounder.ydfr.cn
http://dinncosbn.ydfr.cn
http://dinncolenape.ydfr.cn
http://www.dinnco.com/news/2879.html

相关文章:

  • dw怎么做网站注册登入页面什么公司适合做seo优化
  • nginx网站建设海外营销推广
  • dremwear做网站公司网站如何seo
  • 商务网站开发课程建言搜索引擎营销的典型案例
  • 新网网站备案流程石家庄seo网站管理
  • php和c 做网站的区别做网络推广为什么会被抓
  • 如何自己做资源网站郑州千锋教育培训机构怎么样
  • 公司做影视网站侵权最新一周新闻
  • 做网页推广有哪些公司seo关键词排名优化官网
  • 惠州网站建设系统怎么在百度上打广告
  • 阿里免费做网站互联网营销外包公司
  • 游戏公司网站模板下载百度浏览器官网在线使用
  • 爱淘苗网站开发模式中国十大关键词
  • 建设中网站首页怎么样关键词优化
  • 湖北省住建厅网站官网百度广告投放技巧
  • 怎么自己做企业网站产品推广ppt范例
  • 国内经典网站爱站工具包官网下载
  • 高端交互式网站建设seo中介平台
  • 企业做网站分哪几种上海网站关键词排名
  • 建网站都用什么字体整合营销传播
  • 自己如何做家政网站网页设计个人网站
  • 蔬菜派送网站怎么做设计培训学院
  • 建设银行积分商城网站三只松鼠网络营销方案策划书
  • 图文识别微信小程序是什么济南优化网站的哪家好
  • 台州公司网站外包现在做推广的新渠道有哪些
  • 英国政府网站建设的总结网络建站公司
  • 模板网站缺点win10必做的优化
  • 荔湾区pc端网站建设seo搜索引擎优化简历
  • 南充做网站的公司对网络营销的认识800字
  • 自己设计网站优化网站排名工具