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

微信公众号h5网站开发汕头最好的seo外包

微信公众号h5网站开发,汕头最好的seo外包,无锡建设市场网站,猎头公司应坚持的原则有【算法学习】—n皇后问题(回溯法) 1. 什么是回溯法? 相信"迷宫"是许多人儿时的回忆,大家小时候一定都玩过迷宫游戏。我们从不用别人教,都知道走迷宫的策略是: 当遇到一个岔路口,会有以下两种情况&#xf…

【算法学习】—n皇后问题(回溯法)

1. 什么是回溯法?

相信"迷宫"是许多人儿时的回忆,大家小时候一定都玩过迷宫游戏。我们从不用别人教,都知道走迷宫的策略是:

当遇到一个岔路口,会有以下两种情况:

存在没走过的路。此时可以任意选一条没走过的路深入,只要记住我们所走过的路径即可。

倘若下次再来到这个路口,便不再沿着走过的路径继续深入,而是沿着没走过的路径深入下去;

所有路都已经走过。如果所有岔路口都已经遍历,则回退至上一个最近的岔路口。

当遇到死胡同,便回退到刚才距离最近的岔路口。

不断前进并重复该过程,直到找到终点或回退到起点位置。

其实,这就是回溯法:一个基于深度优先搜索和约束函数的问题求解方法。

(1)、n皇后问题

在这里插入图片描述

在这里插入图片描述

📢 非递归求解n皇后问题

#include <math.h>
#include <stdio.h>
#include <stdlib.h>#define N 4int q[N + 1]; // 存储皇后的列号int check(int j)
{ // 检查第i个皇后的位置是否合法int i;for (i = 1; i < j; i++){if (q[i] == q[j] || abs(i - j) == abs(q[i] - q[j])){ // 判断是否在同一斜线上return 0;}}return 1;
}void queen()
{ //int i;for (i = 1; i <= N; i++){q[i] = 0;}int answer = 0; // 方案数int j = 1;      // 表示正在摆放第j个皇后while (j >= 1){q[j] = q[j] + 1; // 让第j个皇后向后一列摆放while (q[j] <= N && !check(j)){                    // 判断第j个皇后的位置是否合法q[j] = q[j] + 1; // 不合法就往后一个位置摆放}if (q[j] <= N){ // 表示第j个皇后的找到一个合法的位置if (j == N){ // 找到了一组皇后的解answer = answer + 1;printf("放案%d:", answer);for (i = 1; i <= N; i++){printf("%d", q[i]);}printf("\n");}else{ // 继续摆放下一个皇后j = j + 1;}}else{ // 表示第j个皇后找不到一个合法的位置q[j] = 0;  // 还原第j个皇后的位置j = j - 1; // 回溯}}
}
int main()
{queen();return 0;
}

📢 递归求解n皇后问题

#include <math.h>
#include <stdio.h>
#include <stdlib.h>#define N 4int answer=0;int q[N + 1]; // 存储皇后的列号int check(int j)
{ // 检查第i个皇后的位置是否合法int i;for (i = 1; i < j; i++){if (q[i] == q[j] || abs(i - j) == abs(q[i] - q[j])){ // 判断是否在同一斜线上return 0;}}return 1;
}void queen(int j){int i;for(i=1;i<=N;i++){q[j]=i;
if(check(j)){// 当摆放的皇后位置为合法时if(j==N){//找到了N皇后的一组解answer=answer+1;printf("方案%d:",answer);for(i=1;i<=N;i++){printf("%d",q[i]);}printf("\n");}else{queen(j+1);//递归摆放下一个位置}
}}
}int main()
{queen(1);return 0;
}

在这里插入图片描述

http://www.hkea.cn/news/639041/

相关文章:

  • 有官网建手机网站千锋教育培训多少钱费用
  • b2c交易模式的网站有哪些百度营销客户端
  • flash 学习网站重庆网站seo多少钱
  • 年终总结ppt模板免费下载网站小红书seo排名规则
  • 自己架设网站口碑营销的产品有哪些
  • 湖北省网站备案最快几天天津百度推广排名优化
  • app在线开发制作平台seo网络优化前景怎么样
  • 商务网站的基本情况网站建设工作总结
  • 山西建设厅网站网络销售怎么聊客户
  • 软装素材网站有哪些seo网络排名优化哪家好
  • 邯郸市做网站建设网络口碑营销案例分析
  • 罗湖网站建设联系电话西安核心关键词排名
  • 如何编写网站电脑清理软件十大排名
  • 怎么给企业制作网站seo关键词排名优化哪好
  • 高仿服装网站建设西安百度关键词推广
  • 网站单页面怎么做的百度seo站长工具
  • 网站建设谢辞企业营销型网站有哪些
  • 免费网站制作申请行业关键词一览表
  • 网站建设费关键词排名提高方法
  • 搭建淘宝客网站源码最近发生的新闻事件
  • 网站模版网网站关键词排名优化价格
  • 做网站去哪里全国免费发布广告信息平台
  • 靖江做网站湖南seo服务电话
  • 工程建设科学技术奖申报网站友情链接交换标准
  • 做网站后期为什么续费链交换
  • 网站开发与设计专业西安seo顾问培训
  • 企业网站建设话术优化营商环境指什么
  • 傻瓜式网站制作微信运营技巧
  • 甘肃网络推广软件seo方案
  • 建筑公司网站首页图片网站推广引流