![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
DFS
搜索
小王子y
互关啊!!
展开
-
蓝桥杯省赛 七段码(DFS加并查集详细解析)
小蓝要用七段码数码管来表示一种特殊的文字。上图给出了七段码数码管的一个图示,数码管中一共有 7 段可以发光的二极管,分别标记为 a, b, c, d, e, f, g。小蓝要选择一部分二极管(至少要有一个)发光来表达字符。在设计字符的表达时,要求所有发光的二极管是连成一片的。例如:b 发光,其他二极管不发光可以用来表达一种字符。例如:c 发光,其他二极管不发光可以用来表达一种字符。这种方案与上一行的方案可以用来表示不同的字符,尽管看上去比较相似。例如:a, b, c, d, e 发光,f,原创 2021-03-18 23:24:17 · 511 阅读 · 0 评论 -
蓝桥杯算法训练ALGO-9 摆动序列(DFS两种写法 好题目!)
问题描述 如果一个序列满足下面的性质,我们就将它称为摆动序列: 1. 序列中的所有数都是不大于k的正整数; 2. 序列中至少有两个数。 3. 序列中的数两两不相等; 4. 如果第i – 1个数比第i – 2个数大,则第i个数比第i – 2个数小;如果第i – 1个数比第i – 2个数小,则第i个数比第i – 2个数大。比如,当k = 3时,有下面几个这样的序列: 1 2 1 3 2 1 2 1 3 2 3 2 3 1 3 1 3 2一共有8种,给定k原创 2021-03-13 15:19:55 · 144 阅读 · 0 评论 -
蓝桥杯 用1,2,4,8,16,32中的若干个数的和组成的小于等于50的正整数有多少个?(DFS)
其实看起来毫无思路可言,不过想通了,还是挺简单的1,2,4,8,16,32都是2的幂次所以我们可以在二进制的角度来考虑无非就是一共6个位置,每个位置非0即1#include<bits/stdc++.h>using namespace std;int ans;int dp[7];void dfs(int x,int sum){ if(x==6){ //sum>0是为了除去全0情况,因为1,2,4,8,16,32中一定会取出一位数用于组合的 if(sum>0原创 2021-03-10 19:24:27 · 142 阅读 · 0 评论 -
喧嚣摇滚乐队(DP,DFS)
你刚刚买下了喧嚣摇滚乐队还未发行的 N 首歌曲的版权。你打算从这些歌曲中进行筛选,找出满意的作品发行 M 张唱片。一首歌只能出现在一张唱片中。每张唱片的歌曲总时长不能超过 T。你将以如下规则进行歌曲的挑选:所有歌曲必须按照创作时间从前到后的顺序,依次收录在所有的唱片中。(也就是说,对于任意两张唱片 i 和 j,如果 i<j,则唱片 i 中的创作最晚的歌曲的创作时间必须满足早于唱片 j 中创作最早的歌曲的创作时间。)要尽可能的使这 M 张唱片收录歌曲的总数最大。输入格式第一行包含三个整数原创 2021-03-03 20:19:49 · 147 阅读 · 1 评论 -
蓝桥杯历届试题 发现环(并查集,DFS)
问题描述 小明的实验室有N台电脑,编号1~N。原本这N台电脑之间有N-1条数据链接相连,恰好构成一个树形网络。在树形网络上,任意两台电脑之间有唯一的路径相连。不过在最近一次维护网络时,管理员误操作使得某两台电脑之间增加了一条数据链接,于是网络中出现了环路。环路上的电脑由于两两之间不再是只有一条路径,使得这些电脑上的数据传输出现了BUG。为了恢复正常传输。小明需要找到所有在环路上的电脑,你能帮助他吗?输入格式 第一行包含一个整数N。 以下N行每行两个整数a和b,表示a和b之间有一条数据链接相原创 2021-03-01 23:23:21 · 115 阅读 · 0 评论 -
蓝桥杯 历届试题 邮局(暴力DFS)
问题描述 C村住着n户村民,由于交通闭塞,C村的村民只能通过信件与外界交流。为了方便村民们发信,C村打算在C村建设k个邮局,这样每户村民可以去离自己家最近的邮局发信。现在给出了m个备选的邮局,请从中选出k个来,使得村民到自己家最近的邮局的距离和最小。其中两点之间的距离定义为两点之间的直线距离。输入格式 输入的第一行包含三个整数n, m, k,分别表示村民的户数、备选的邮局数和要建的邮局数。 接下来n行,每行两个整数x, y,依次表示每户村民家的坐标。 接下来m行,每行包含两个整数x, y原创 2021-02-28 19:29:03 · 167 阅读 · 0 评论 -
蓝桥杯历届试题 分考场(DFS)
问题描述 n个人参加某项特殊考试。 为了公平,要求任何两个认识的人不能分在同一个考场。 求是少需要分几个考场才能满足条件。输入格式 第一行,一个整数n(1<n<100),表示参加考试的人数。 第二行,一个整数m,表示接下来有m行数据 以下m行每行的格式为:两个整数a,b,用空格分开 (1<=a,b<=n) 表示第a个人与第b个人认识。输出格式 一行一个整数,表示最少分几个考场。样例输入581 21 31 42 32 42 53 4原创 2021-02-26 00:52:59 · 424 阅读 · 0 评论 -
蓝桥杯十二届校内模拟赛 黄绿蓝小球方案(DFS)
问题描述 小蓝有黄绿蓝三种颜色的小球,分别为 R, G, B 个。同样颜色的小球没有区别。 小蓝将这些小球从左到右排成一排,排完后,将最左边的连续同色小球个数记为 t_1,将接下来的连续小球个数记为 t_2,以此类推直到最右边的小球。 请问,总共有多少总摆放小球的方案,使得 t_1, t_2, … 为严格单调递增序列,即 t_1 < t_2 < t_3 < …输入格式 输入一行包含三个整数 R, G, B。输出格式 输出一个整数,表示答案。样例输入3 6 0样原创 2021-02-23 00:56:16 · 862 阅读 · 1 评论 -
2019蓝桥国赛 路径计数(DFS)
有一个7X7的方格。方格左上角顶点坐标为(0,0),右下角坐标为(7,7)。求满足下列条件的路径条数:1、起点和终点都是(0,0)2、路径不自交3、路径长度不大于124、对于每一个顶点,有上下左右四个方向可以走,但是不能越界。例如,图中路线,左上角顶点(0,0),路线长度为10答案:206分析:dfs,路径一定大于3,剪枝路径>12的,以及x和y坐标和大于6时,一定不满足,结束搜索。#include<bits/stdc++.h>#include<iostre原创 2021-02-19 17:41:23 · 286 阅读 · 0 评论 -
木棒(DFS剪枝)
乔治拿来一组等长的木棒,将它们随机地砍断,使得每一节木棍的长度都不超过50个长度单位。然后他又想把这些木棍恢复到为裁截前的状态,但忘记了初始时有多少木棒以及木棒的初始长度。请你设计一个程序,帮助乔治计算木棒的可能最小长度。每一节木棍的长度都用大于零的整数表示。输入格式输入包含多组数据,每组数据包括两行。第一行是一个不超过64的整数,表示砍断之后共有多少节木棍。第二行是截断以后,所得到的各节木棍的长度。在最后一组数据之后,是一个零。输出格式为每组数据,分别输出原始木棒的可能最小长度,每组数原创 2021-02-18 22:58:34 · 193 阅读 · 0 评论 -
剑指Offer 数字排列(DFS)
输入一组数字(可能包含重复数字),输出其所有的排列方式。样例输入:[1,2,3]输出: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1] ]输入 [1,1,2]输出[[1, 1, 2], [1, 2, 1], [2, 1, 1]]class Solution {public: vector原创 2021-02-12 23:04:05 · 135 阅读 · 0 评论 -
虫食算(DFS剪枝老恶心的题)
所谓虫食算,就是原先的算式中有一部分被虫子啃掉了,需要我们根据剩下的数字来判定被啃掉的字母。来看一个简单的例子: 43#9865#045+ 8468#6633-------------- 44445506978其中#号代表被虫子啃掉的数字。根据算式,我们很容易判断:第一行的两个数字分别是5和3,第二行的数字是5。现在,我们对问题做两个限制:首先,我们只考虑加法的虫食算。这里的加法是N进制加法,算式中三个数都有N位,允许有前导的0。其次,虫子把所有的数都啃光了,我们只知道哪些数字是相原创 2021-02-05 01:57:08 · 312 阅读 · 0 评论 -
P2404 自然数的拆分问题(DFS)
题目描述任何一个大于1的自然数n,总可以拆分成若干个小于n的自然数之和。现在给你一个自然数n,要求你求出n的拆分成一些数字的和。每个拆分后的序列中的数字从小到大排序。然后你需要输出这些序列,其中字典序小的序列需要优先输出。输入格式输入:待拆分的自然数n。输出格式输出:若干数的加法式子。输入输出样例输入 7输出 1+1+1+1+1+1+11+1+1+1+1+21+1+1+1+31+1+1+2+21+1+1+41+1+2+31+1+51+2+2+21+2+41+3+31+原创 2021-02-02 20:12:30 · 661 阅读 · 0 评论 -
P1036 [NOIP2002 普及组] 选数(DFS附带思路)
题目描述已知 n 个整数 x_1,x_2,…,x_nx1 ,x2 ,…,xn ,以及1个整数k(k<n)。从n个整数中任选k个整数相加,可分别得到一系列的和。例如当n=4,k=3,4个整数分别为3,7,12,19时,可得全部的组合与它们的和为:3+7+12=223+7+19=297+12+19=383+12+19=34现在,要求你计算出和为素数共有多少种。例如上例,只有一种的和为素数:3+7+19=29。输入格式键盘输入,格式为:输出格式屏幕输出,格式为:原创 2021-02-02 19:45:40 · 2393 阅读 · 0 评论 -
P1025 [NOIP2001 提高组] 数的划分(DFS)
题目描述将整数n分成k份,且每份不能为空,任意两个方案不相同(不考虑顺序)。例如:n=7,k=3,下面三种分法被认为是相同的。1,1,5;1,5,1;5,1,1.问有多少种不同的分法。输入格式n,k (6<n \le 2006<n≤200,2 \le k \le 62≤k≤6)输出格式1个整数,即不同的分法。输入输出样例输入7 3输出 4说明/提示四种分法为:1,1,5;1,2,4;1,3,3;2,2,3.后面的数不能比前面的数小#inclu原创 2021-02-02 19:26:50 · 314 阅读 · 1 评论 -
P1433 吃奶酪(暴力DFS以及状态DP优化)
题目描述房间里放着 n 块奶酪。一只小老鼠要把它们都吃掉,问至少要跑多少距离?老鼠一开始在 (0,0) 点处。输入格式第一行有一个整数,表示奶酪的数量 n。第 2 到第 (n+1) 行,每行两个实数,第 (i+1) 行的实数分别表示第 i 块奶酪的横纵坐标输出格式输出一行一个实数,表示要跑的最少距离,保留 2 位小数。输入输出样例输入 41 11 -1-1 1-1 -1输出 7.41//暴力DFS#include <bits/stdc++.h>using n原创 2021-02-02 01:51:28 · 599 阅读 · 0 评论 -
[USACO06FEB]Backward Digit Sums(DFS)
题目描述FJ他的牛喜欢玩心理游戏。他们把数字写下来11到N(1\le N\le 10)N(1≤N≤10)在一定的顺序,然后与相邻的数字和,以产生一个新的列表少一个数字。他们重复这样做,直到只剩下一个数字。例如,游戏的一个实例(当N=4N=4)可能是这样的:3 1 2 4 4 3 6 7 9 16后面FJ回来了,母牛开始玩一种更难的游戏,他们试图从最后的总数和数量来确定开始的顺序NN。不幸的是,这个游戏有点高。FJ心算能力。编写一个帮助程序FJ玩游戏,跟原创 2021-02-01 21:59:36 · 205 阅读 · 0 评论 -
P1101 单词方阵(DFS清晰)
题目描述给一n×n的字母方阵,内可能蕴含多个“yizhong”单词。单词在方阵中是沿着同一方向连续摆放的。摆放可沿着 8 个方向的任一方向,同一单词摆放时不再改变方向,单词与单词之间可以交叉,因此有可能共用字母。输出时,将不是单词的字母用*代替,以突出显示单词。例如:输入: 8 输出: qyizhong *yizhong gydthkjy gy****** nwidghji原创 2021-01-31 19:25:48 · 122 阅读 · 0 评论 -
P1784 数独(DFS)
题目描述数独是根据 9×9 盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行、每一列、每一个粗线宫内的数字均含 1−9 ,不重复。每一道合格的数独谜题都有且仅有唯一答案,推理方法也以此为基础,任何无解或多解的题目都是不合格的。芬兰一位数学家号称设计出全球最难的“数独游戏”,并刊登在报纸上,让大家去挑战。这位数学家说,他相信只有“智慧最顶尖”的人才有可能破解这个“数独之谜”。据介绍,目前数独游戏的难度的等级有一到五级,一是入门等级,五则比较难。不过这位数学家说,他所设计的数独游戏难度等级是十一原创 2021-01-30 21:05:39 · 349 阅读 · 0 评论 -
USACO蜗牛漫步(DFS)
蜗牛莎莉喜欢在一个 N×N 的方格矩阵中散步。她每次都从左上角出发。方格矩阵中有空地(用 “.” 表示)和障碍(用 “#” 表示)。下面是一个具体示例: A B C D E F G H 1 S . . . . . # . 2 . . . . # . . . 3 . . . . . . . . 4 . . . . . . . . 5 . . . . . # . . 6 # . . . . . . . 7 . . . . . . . .原创 2021-01-28 21:51:16 · 237 阅读 · 0 评论 -
乘积最大(两种DFS方法,动态规划)
今年是国际数学联盟确定的“2000——世界数学年”,又恰逢我国著名数学家华罗庚先生诞辰90周年。在华罗庚先生的家乡江苏金坛,组织了一场别开生面的数学智力竞赛的活动,你的一个好朋友 XZ 也有幸得以参加。活动中,主持人给所有参加活动的选手出了这样一道题目:设有一个长度为 N 的数字串,要求选手使用 K 个乘号将它分成 K+1 个部分,找出一种分法,使得这 K+1 个部分的乘积最大。同时,为了帮助选手能够正确理解题意,主持人还举了如下的一个例子:有一个数字串:312, 当 N=3,K=1N=3,K=1原创 2021-01-27 13:53:52 · 662 阅读 · 0 评论 -
USACO循环数(DFS)
循环数是一种没有重复数字且不含 0 并具有一些有趣性质的整数。我们以 81362 为例:如果从最左边的那个数字(在这里是 8)开始,向右数该数字位(当数到最右边的数字时,若还没有数完,则从左边第一位继续数),你将在一个新的数字处停下(如果没停在新数字上,则这个数不是循环数)。对于本例,从 8 开始右数 8 位:1 3 6 2 8 1 3 6,将停在 6 上。在新停下的位置,继续重复上一个操作,也就是从 66 开始右数 6 位:2 8 1 3 6 2,将停在 2 上。再次重复此操作,从 2原创 2021-01-26 18:22:16 · 138 阅读 · 0 评论 -
USACO零和序列(暴力DFS)
给定一个由 1∼N 构成的序列:1,2,…,N。现在,你要在序列的数字与数字之间插入一些符号,插入+表示加法运算,插入-表示减法运输,插入(空格)表示数字合并为一个数。在全部插入完毕后,将得到一个可以看作表达式的新序列。计算该表达式的结果,看看结果是否为 0。现在,请你编写一个程序,给定整数 N,找到并输出所有的长度为 N 且总和为零的序列。输入格式共一行,包含一个整数 N。输出格式按照 ASCII 码的顺序输出所有满足条件的序列,每个序列占一行。数据范围3≤N≤9输入样例:7输出原创 2021-01-26 17:24:49 · 185 阅读 · 0 评论 -
USACO汉明码(DFS,二进制)
给定三个整数 N,B,D,请你找到 N 个长度为 B 位的编码(编码中每位只能是 0 或 1),使得这 N 个编码两两之间的汉明距离都不小于 D。两个编码之间的汉明距离是指两个编码在二进制表示下不同二进制位的数目。例如,编码 0x554 和编码 0x234 在二进制表示下的位差异如下所示(0x554 是指在十六进制下的数字 554): 0x554 = 0101 0101 0100 0x234 = 0010 0011 0100 不同位: -XXX -XX- ----因为有 5 个数位原创 2021-01-26 00:21:23 · 203 阅读 · 0 评论 -
USACO健康的荷斯坦奶牛(DFS,二进制暴力枚举)
农夫约翰以拥有世界上最健康的奶牛而感到自豪。奶牛想要保持健康,每天就要补充足量的多种维生素。约翰为奶牛们准备了多种牛饲料,每种牛饲料中都富含奶牛所需的多种维生素,但是每种维生素的具体含量可能并不相同。每种牛饲料每天最多只能喂给奶牛们一勺,也就是说每种饲料可以选择不喂给奶牛,或喂给奶牛一勺的量。现在给定所有饲料的每种维生素的(每勺)具体含量,以及奶牛对于每种维生素的每日最低需求量。请你求出,保证奶牛各种维生素的每日摄入量达标的情况下,最少需要喂给奶牛多少勺饲料。数据保证有解。输入格式第一行包含原创 2021-01-19 20:34:17 · 524 阅读 · 0 评论 -
7-13 求序列个数(记忆化搜索)
设序列L由{l 1 ,l 2 ,l 3 ,⋯,l i ,⋯}(li ≥0,i≥3)构成,其中,l 1 为整数M, l 2 ≤l 1 ,从l 3 开始l i <∣li-2 −li−1 ∣(i≥3)。M=4时,有7个序列输入格式:输入一个序列中的第一个正整数M(M≤1000)。输出格式:输出满足条件的序列的个数的后四位,即个数对10000取模。输入样例:在这里给出一组输入。例如:5输出样例:在这里给出相应的原创 2021-01-19 02:00:19 · 351 阅读 · 0 评论 -
USACO穿梭谜题(DFS)
大小为 3 的穿梭谜题由三个白石子三个黑石子和带着七个孔的木板组成。最初,将白石子放在木板左端的孔中,黑石子放在右端的孔中,中间的孔空着。最终,要将白石子移动到右端,将黑石子移动到左端。初始状态:WWW_BBB最终状态:BBB_WWW在解决这一问题时,共有两种移动石子的方法:将一个石子移动至相邻的空孔之中。将一个石子跳过一个与它不同色的石子,移动至空孔之中。石子不能往回走,也不能一次跳过两个或以上的石子。一个大小为 N 的穿梭谜题,应该由 N 个白石子,N 个黑石子以及有 2N+1 个空孔原创 2021-01-18 23:59:04 · 231 阅读 · 0 评论 -
火车进栈(DFS)
这里有n列火车将要进站再出站,但是,每列火车只有1节,那就是车头。这n列火车按1到n的顺序从东方左转进站,这个车站是南北方向的,它虽然无限长,只可惜是一个死胡同,而且站台只有一条股道,火车只能倒着从西方出去,而且每列火车必须进站,先进后出。也就是说这个火车站其实就相当于一个栈,每次可以让右侧头火车进栈,或者让栈顶火车出站。车站示意如图: 出站<—— <——进站 |车| |站|原创 2021-01-11 15:44:15 · 495 阅读 · 0 评论 -
USACO 优质牛肋骨(DFS)
农夫约翰的牛总是能够产出最优质的肋骨。你可以通过查看约翰和美国农业部一对一地刻在每根肋骨上的数字来分辨它们。约翰可以保证购买他的牛肋骨的消费者们一定可以得到最优质的肋骨。因为每当从肋骨的右侧切下一部分卖给消费者时,剩下的相连的肋骨上的数字始终都能保持是一个质数。(单词 primeprime 作形容词可以表示优质的,作名词可以表示质数,这里一语双关)例如,有四根肋骨连在一起,构成质数 7331,当卖掉最右边一根时,剩下的三个肋骨构成质数 733,再卖掉一根,剩下两根肋骨构成质数 7373,再卖掉一根,原创 2021-01-10 22:01:52 · 335 阅读 · 0 评论 -
母亲的牛奶(BFS,DFS)
农夫约翰有三个容量分别为 A,B,C升的挤奶桶。最开始桶 A 和桶 B 都是空的,而桶 C 里装满了牛奶。有时,约翰会将牛奶从一个桶倒到另一个桶中,直到被倒入牛奶的桶满了或者倒出牛奶的桶空了为止。这一过程中间不能有任何停顿,并且不会有任何牛奶的浪费。请你编写一个程序判断,当 A 桶是空的时候,C 桶中可能包含多少升牛奶,找出所有的可能情况。输入格式共一行,包含三个整数 A,B,C。输出格式共一行,包含若干个整数,表示 C 桶中牛奶存量的所有可能情况,请将这些数字按升序排列。数据范围1≤A原创 2021-01-09 01:28:17 · 702 阅读 · 0 评论 -
矩阵中的路径(DFS)
请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则之后不能再次进入这个格子。注意:输入的路径不为空;所有出现的字符均为大写英文字母;样例matrix=[ ["A","B","C","E"], ["S","F","C","S"], ["A","D","E","E"]]str="BCCE" , return "true"原创 2021-01-08 01:29:53 · 193 阅读 · 0 评论 -
树的重心(DFS,树形DP)
给定一颗树,树中包含n个结点(编号1~n)和n-1条无向边。请你找到树的重心,并输出将重心删除后,剩余各个连通块中点数的最大值。重心定义:重心是指树中的一个结点,如果将这个点删除后,剩余各个连通块中点数的最大值最小,那么这个节点被称为树的重心。输入格式第一行包含整数n,表示树的结点数。接下来n-1行,每行包含两个整数a和b,表示点a和点b之间存在一条边。输出格式输出一个整数m,表示将重心删除后,剩余各个连通块中点数的最大值。数据范围1≤n≤105输入样例91 21 71 42原创 2021-01-07 18:32:38 · 223 阅读 · 0 评论 -
八数码(bfs经典问题)
在一个3×3的网格中,1~8这8个数字和一个“x”恰好不重不漏地分布在这3×3的网格中。例如:1 2 3x 4 67 5 8在游戏过程中,可以把“x”与其上、下、左、右四个方向之一的数字交换(如果存在)。我们的目的是通过交换,使得网格变为如下排列(称为正确排列):1 2 34 5 67 8 x例如,示例中图形就可以通过让“x”先后与右、下、右三个方向的数字交换成功得到正确排列。交换过程如下:1 2 3 1 2 3 1 2 3 1 2 3x 4 6 4 x原创 2021-01-07 13:37:12 · 399 阅读 · 0 评论 -
滑雪(记忆化搜索)
给定一个R行C列的矩阵,表示一个矩形网格滑雪场。矩阵中第 i 行第 j 列的点表示滑雪场的第 i 行第 j 列区域的高度。一个人从滑雪场中的某个区域内出发,每次可以向上下左右任意一个方向滑动一个单位距离。当然,一个人能够滑动到某相邻区域的前提是该区域的高度低于自己目前所在区域的高度。下面给出一个矩阵作为例子:1 2 3 4 516 17 18 19 615 24 25 20 714 23 22 21 813 12 11 10 9在给定矩阵中,一条可行的滑行轨迹为24-17-2-1。原创 2020-12-24 15:55:18 · 164 阅读 · 1 评论 -
POJ 2251 地牢大师(BFS三维模板题)
你现在被困在一个三维地牢中,需要找到最快脱离的出路!地牢由若干个单位立方体组成,其中部分不含岩石障碍可以直接通过,部分包含岩石障碍无法通过。向北,向南,向东,向西,向上或向下移动一个单元距离均需要一分钟。你不能沿对角线移动,迷宫边界都是坚硬的岩石,你不能走出边界范围。请问,你有可能逃脱吗?如果可以,需要多长时间?输入格式输入包含多组测试数据。每组数据第一行包含三个整数 L,R,C分别表示地牢层数,以及每一层地牢的行数和列数。接下来是 L 个 R 行 C 列的字符矩阵,用来表示每一层地牢的具原创 2020-12-23 11:13:15 · 177 阅读 · 0 评论 -
蓝桥杯省赛 走方格(多种方法)
在平面上有一些二维的点阵。这些点的编号就像二维数组的编号一样,从上到下依次为第 11 至第 nn 行,从左到右依次为第 11 至第 mm 列,每一个点可以用行号和列号来表示。现在有个人站在第 11 行第 11 列,要走到第 nn 行第 mm 列。只能向右或者向下走。注意,如果行号和列数都是偶数,不能走入这一格中。问有多少种方案。输入格式输入一行包含两个整数 n,mn,m。输出格式输出一个整数,表示答案。数据范围1≤n,m≤301≤n,m≤30输入样例1:3 4输出样例1:2输原创 2020-12-21 13:02:53 · 872 阅读 · 0 评论 -
单词接龙(DFS回溯)
单词接龙是一个与我们经常玩的成语接龙相类似的游戏。现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的“龙”,每个单词最多被使用两次。在两个单词相连时,其重合部分合为一部分,例如 beast 和 astonish ,如果接成一条龙则变为 beastonish。我们可以任意选择重合部分的长度,但其长度必须大于等于1,且严格小于两个串的长度,例如 at 和 atide 间不能相连。输入格式输入的第一行为一个单独的整数 nn 表示单词数,以下 nn 行每行有一个单词(只含有大写或小写原创 2020-12-19 12:43:52 · 789 阅读 · 1 评论 -
蓝桥杯 第39级台阶(两种递归顺序)
小明刚刚看完电影《第39级台阶》,离开电影院的时候,他数了数礼堂前的台阶数,恰好是39级!站在台阶前,他突然又想着一个问题:如果我每一步只能迈上1个或2个台阶。先迈左脚,然后左右交替,最后一步是迈右脚,也就是说一共要走偶数步。那么,上完39级台阶,有多少种不同的上法呢?请你利用计算机的优势,帮助小明寻找答案。答案:51167078#include <iostream> using namespace std; int sum; //记录走法的总数void dfs(int原创 2020-12-07 18:42:29 · 1569 阅读 · 0 评论 -
蓝桥杯题目 2107: 误落迷宫2
题目描述希里掉入三夫人的迷宫了,这是一个真正的迷宫,蜿蜒复杂,希里的目的只有一个,那就是找到三夫人,到达出口。给定一个二维矩阵表示迷宫,你需要做到的是,从迷宫的出口处找到三夫人,再从三夫人处走向终点。其中’S’表示起始点,'T’表示三夫人处,'E’表示迷宫重点。'1’表示墙壁,意思是不可达位置,'0’表示通路,意思是可以移动的位置每次移动可以从上下左右四个方向进行移动。你需要告诉希里,最短需要走多少步能够完成上述目标。输入第一行一个n,m分别表示迷宫的大小。接下来n行每行m字符表示迷宫2原创 2020-12-07 18:00:52 · 109 阅读 · 0 评论 -
蓝桥杯历届试题 地宫取宝(记忆化搜索)
问题描述 X 国王有一个地宫宝库。是 n x m 个格子的矩阵。每个格子放一件宝贝。每个宝贝贴着价值标签。地宫的入口在左上角,出口在右下角。小明被带到地宫的入口,国王要求他只能向右或向下行走。走过某个格子时,如果那个格子中的宝贝价值比小明手中任意宝贝价值都大,小明就可以拿起它(当然,也可以不拿)。当小明走到出口时,如果他手中的宝贝恰好是k件,则这些宝贝就可以送给小明。请你帮小明算一算,在给定的局面下,他有多少种不同的行动方案能获得这k件宝贝。输入格式 输入一行3个整数,用空格分开:n m原创 2020-12-07 00:31:46 · 99 阅读 · 0 评论