![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++算法——搜索与回溯
文章平均质量分 67
搜索与回溯算法介绍以及相关题目
小芒果_01
不积跬步无以至千里。
展开
-
奇怪的电梯------[解析]广度优先搜索
呵呵,有一天我做了一个梦,梦见了一种很奇怪的电梯。大楼的每一层楼都可以停电梯,而且第i层楼(1≤i≤N)上有一个数字Ki0≤Ki≤N电梯只有四个按钮:开,关,上,下。上下的层数等于当前楼层上的那个数字。当然,如果不能满足要求,相应的按钮就会失灵。例如:33125代表了KiK13K23,……),从1楼开始。在1楼,按“上”可以到4楼,按“下”是不起作用的,因为没有−2楼。那么,从A楼到B楼至少要按几次按钮呢?原创 2024-01-24 16:17:40 · 399 阅读 · 0 评论 -
P1451 求细胞数量——深搜、广搜
一矩形阵列由数字0到9组成,数字1到9代表细胞,细胞的定义为沿细胞数字上下左右若还是细胞数字则为同一细胞,求给定矩形阵列的细胞个数。原创 2024-01-19 17:57:48 · 808 阅读 · 0 评论 -
P1019 [NOIP2000 提高组] 单词接龙【解析】----深度优先搜索
单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的“龙”(每个单词都最多在“龙”中出现两次)原创 2024-01-19 11:38:51 · 477 阅读 · 0 评论 -
P1162 填涂颜色【解析】-----深度优先搜索
由数字0组成的方阵中,有一任意形状的由数字1构成的闭合圈。现要求把闭合圈内的所有空间都填写成2。6×6的方阵(n6),涂色前和涂色后的方阵如下:如果从某个0出发,只向上下左右4个方向移动且仅经过其他0的情况下,无法到达方阵的边界,就认为这个0。闭合圈不一定是环形的,可以是任意形状,但保证的0是连通的(两两之间可以相互到达)。原创 2024-01-18 19:48:38 · 1140 阅读 · 0 评论 -
1818:红与黑【解析】-------深度优先搜索
有一间长方形的房子,地上铺了红色、黑色两种颜色的正方形瓷砖。你站在其中一块黑色的瓷砖上,只能向相邻的黑色瓷砖移动。请写一个程序,计算你总共能够到达多少块黑色的瓷砖。原创 2024-01-18 17:50:37 · 892 阅读 · 0 评论 -
P1036 [NOIP2002 普及组] 选数
已知n个整数x1x2⋯xn,以及1个整数kkn从n个整数中任选k个整数相加,可分别得到一系列的和。例如当n4k34个整数分别为37121937122237192971219383121934现在,要求你计算出和为素数共有多少种。371929。原创 2023-09-28 10:41:51 · 109 阅读 · 0 评论 -
素数环 Prime Ring Problem
输入正整数n,把整数12n组成一个环,使得相邻两个整数之和均为素数。输出时,从整数1开始逆时针排列。同一个环恰好输出一次。n≤16,保证一定有解。多组数据,读入到EOF结束。第i组数据输出前加上一行相邻两组数据中间加上一个空行。原创 2023-09-28 10:36:29 · 267 阅读 · 0 评论 -
P1706 全排列问题
按照字典序输出自然数1到n所有不重复的排列,即n的全排列,要求所产生的任一数字序列中不允许出现重复的数字。原创 2023-09-28 10:34:52 · 193 阅读 · 0 评论 -
例5.8 跳马问题(一本通)
在5*5格的棋盘上,有一只中国象棋的马,从(1,1)点出发,按日字跳马,它可以朝8个方向跳,但不允许出界或跳到已跳过的格子上,要求跳遍整个棋盘。输出前5个方案及总方案数。总方案数是304个。确定这八个位置的表示。原创 2023-02-16 16:41:51 · 543 阅读 · 0 评论 -
例5.7 选书(一本通)
学校放寒假时,信息学竞赛辅导老师有A、B、C、D、E五本书,要分给参加培训的张、王、刘、孙、李五位同学,每人只能选一本书。老师事先让每个人将自己喜欢的书填写在如下的表格中。然后根据他们填写的表来分配书本,希望设计一个程序帮助老师求出所有可能的方案,使每个学生都满意。本题相对来说比较简单,找出第一个if中需要填入的条件,再找出终止条件就很容易得出答案。3.检查是否所有的排列都产生了,如果没有产生完,则返回步骤1;2.检查是否符合“喜爱书表“的条件,如果符合,就打印出来;1.产生五个数字的全排列;原创 2023-02-16 15:19:30 · 270 阅读 · 0 评论 -
C++算法——搜索与回溯算法
搜索与回溯是计算机解题过程中常用的算法,很多问题无法根据某种确定的计算机法则来求解,可以利用搜索与回溯的技术求解。它的基本思想是:为了求得问题的解,先选择某一种可能的情况向前探索,在探索过程中,一旦发现原来的选择是错误的,就退回一步重新选择,继续向前探索,如此反复进行,直至得到解或证明无解。进入迷宫后,先随意选择一个前进方向,一步步向前试探前进,如果碰到死胡同,说明前进方向已无路可走。将1开始,每个空位有20种可能,只要填进去的数合法:与前面的数不相同;第20个数还要判断和第1个数的和是否是素数。原创 2023-02-10 15:08:51 · 1124 阅读 · 0 评论 -
八皇后问题汇总(C++版)
这就是著名的八皇后问题。问题表述为:在8×8格的国际象棋上摆放8个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。首先,如果每一次都去进行深搜的话一定会出现超时问题,所以最好的办法是先进行一次深搜,然后在深搜的过程中存储每一种方案,这样在进行输出是只需要从保存的方案中拿出来就可以了,时间复杂度为O(1)。8]表示皇后的放置:第i行皇后放在第j列,用a[i]=j来表示,即下标是行数,内容是列数。如果在/斜线上,则行列值之和相同,如果在\斜线上,则行列值之差相同。原创 2023-02-11 15:39:17 · 9852 阅读 · 2 评论 -
例5.5 马的遍历(一本通)
中国象棋半张棋盘如图所示。马自左下角往右上角跳。今规定只许往右跳,不许往左跳。跳。今规定只许往右跳,不许往左跳。比如图a中所示为一种跳行路线,并将所经路线打印出来。原创 2023-02-14 17:53:55 · 524 阅读 · 0 评论 -
设有A、B、C、D、E五人从事J1、J2、J3、J4、J5五项工作,每人只能从事一项……
例5.6 设有A、B、C、D、E五人从事J1、J2、J3、J4、J5五项工作,每人只能从事一项,他们的效益如图下图所示。1.用数组f存储搜索中工作选择的方案;使用key存储最优解;数组p用于表示某项工作有没有被选择了。每人选择五项工作中的一项,在各种选择的组合中,找到效益最高的一种组合输出。(2)判断效益是否高于max已记录的效益,若高于则更新max的值。3.搜索策略:回溯法(深度优先搜索dfs)2.(1)选择p(i)=0的第i项工作;原创 2023-02-16 14:39:08 · 580 阅读 · 0 评论