DFS&&BFS&&爆搜
文章平均质量分 58
搜索算法的各种应用,连通块啊,遍历排列情况,填数情况,迷宫问题,找点问题
lao_kai_ybqy
这个作者很懒,什么都没留下…
展开
-
青蛙跳杯子(蓝桥杯)
青蛙跳杯子题目描述XX 星球的流行宠物是青蛙,一般有两种颜色:白色和黑色。XX 星球的居民喜欢把它们放在一排茶杯里,这样可以观察它们跳来跳去。如下图,有一排杯子,左边的一个是空着的,右边的杯子,每个里边有一只青蛙。∗ WWWBBB其中,WW 字母表示白色青蛙,BB 表示黑色青蛙,∗ 表示空杯子。XX 星的青蛙很有些癖好,它们只做 3 个动作之一:跳到相邻的空杯子里。隔着 1 只其它的青蛙(随便什么颜色)跳到空杯子里。隔着 2 只其它的青蛙(随便什么颜色)跳到空杯子里。对于上图的局面,只原创 2021-03-25 17:53:33 · 1013 阅读 · 1 评论 -
数字划分(蓝桥杯)
数字划分题目描述本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。W星球的长老交给小明一个任务: 1,2,3 \cdots 161,2,3⋯16 这 1616 个数字分为两组。要求:这两组数字的和相同,并且,两组数字的平方和也相同,并且,两组数字的立方和也相同。请你利用计算机的强大搜索能力解决这个问题。 并输出 11 所在的那个分组的所有数字。这些数字要从小到大排列,两个数字间用一个空格分开。 即类似:1\ 4\ 5\ 8 …1 4 5 8… 这样的答案。运行限制最大运原创 2021-03-25 10:50:08 · 225 阅读 · 0 评论 -
跳蚱蜢(蓝桥杯 )
跳蚱蜢题目描述本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。如下图所示: 有 9 只盘子,排成 1 个圆圈。 其中 8 只盘子内装着 8 只蚱蜢,有一个是空盘。 我们把这些蚱蜢顺时针编号为 1 ~ 8。每只蚱蜢都可以跳到相邻的空盘中, 也可以再用点力,越过一个相邻的蚱蜢跳到空盘中。请你计算一下,如果要使得蚱蜢们的队形改为按照逆时针排列, 并且保持空盘的位置不变(也就是 1-8 换位,2-7换位,…),至少要经过多少次跳跃?运行限制最大运行时间:1s最大运行内存:原创 2021-03-24 21:28:27 · 422 阅读 · 0 评论 -
十面埋伏(DFS,标记)
十面埋伏题目链接经过多年的征战,牛牛在与牛可乐的对决渐渐处于下风,于是牛牛决定对牛可乐来一次大围剿。战场可以看作一张 n∗m 的地图,牛可乐的士兵只能上下左右移动,不能斜着移动,牛牛决定挖一圈陷阱包围牛可乐的士兵。牛牛想知道包围牛可乐的士兵所需要的最少的陷阱数量是多少(划掉,具体请看update),但是牛牛并不会排兵布阵,于是只能求助于你了。保证地图的边界处不会有士兵.保证牛可乐的士兵是连通的要求牛可乐使用的陷阱构成的包围圈与牛可乐的士兵之间要求是紧密接触的输入描述:第一行输入两个整数 n原创 2021-03-19 17:54:59 · 129 阅读 · 0 评论 -
膜法记录(DFS暴搜,贪心)
膜法记录题目链接牛牛最近在玩一款叫做《膜法记录》的游戏,这个游戏的机制是这样的:在一局游戏中,所有的敌人都排布在一个 n 行 m 列的网格中,牛牛指挥着他的魔法少女对敌人进行攻击。攻击有两种类型:行blast,列blast行blast能消灭一整行的敌人,列blast能消灭一整列的敌人牛牛总共能够释放 a 次行blast,b 次列blast给定某局游戏的初始局面,请问牛牛能否将敌人全歼?输入描述:第一行包含一个正整数T,表示测试数据组数,接下来是T组测试数据每组测试数据的第一行有四个正整数原创 2021-03-17 17:36:37 · 95 阅读 · 0 评论 -
树上求和(huffman树,dfs遍历树)
树上求和链接有一棵包含n个节点和n-1条边的树,规定树链(u,v)为树上从u到v的简单路径。树的每条边上都有一个正整数,这个正整数被称作这条边的颜色,规定一条树链的权值w(u,v)为这条树链上所有边的颜色的代数和。而整棵树的权值为所有不同的树链的权值的代数和。已知所有边的颜色集合恰好为1到n-1这n-1个不同的正整数,请你为每条边安排一种颜色,使得这棵树的权值尽量小,你不需要给出具体方案,只需要求出这个最小的权值即可。输入描述:测试数据第一行,是一个正整数n(1≤n≤105),表示树的节点个数原创 2021-03-17 17:28:21 · 140 阅读 · 0 评论 -
收集纸片(dfs爆搜)
收集纸片题目链接我们把房间按照笛卡尔坐标系进行建模之后,每个点就有了一个坐标。假设现在房子里有些纸片需要被收集,收集完纸片你还要回归到原来的位置,你需要制定一个策略来使得自己行走的距离最短。你只能沿着 x 轴或 y 轴方向移动,从位置 (i,j) 移动到相邻位置 (i+1,j),(i-1,j),(i,j+1) 或 (i,j-1) 距离增加 1。输入描述:在第一行中给出一个T, ,1≤T≤10, 代表测试数据的组数。对于每组输入,在第一行中给出房间大小,第二行给出你的初始位置。接下来给出一个正原创 2021-03-15 15:56:57 · 97 阅读 · 0 评论 -
交换游戏(记忆化搜索,状态压缩,位运算)
交换游戏题目链接题目描述一列上有12个孔,这12个孔中有些孔被遮挡住了。假定我们用 ‘-’ 来表示没被遮挡住的孔,用 ‘o’ 来表示被遮挡住的孔。如果相邻的三个孔有两个孔被遮挡,并且被遮挡的两个孔相邻,就是 ‘-oo’ 和 ‘oo-’。对于这样的三个孔,我们可以将中间的孔的遮挡物移开,代价是将一端的遮挡物移到另一端没有被遮挡的孔上面。对于一列给定的孔,你的任务是制定操作的顺序,使得最后剩余的被遮挡的孔的个数最少,并输出最后剩余的被遮挡的孔的个数。输入描述:第一行输入一个n,n≤105接下原创 2021-03-15 15:52:02 · 340 阅读 · 0 评论 -
带分数(爆搜)
带分数题目链接100 可以表示为带分数的形式:100=3+69258 / 714还可以表示为:100=82+3546 / 197注意特征:带分数中,数字 1∼9 分别出现且只出现一次(不包含 0)。类似这样的带分数,100 有 11 种表示法。输入格式一个正整数。输出格式输出输入数字用数码 1∼9 不重复不遗漏地组成带分数表示的全部种数。数据范围1≤N<106输入样例1:100输出样例1:11输入样例2:105输出样例2:6算法分析暴力枚举每一种情况,我们找原创 2021-02-22 22:03:31 · 748 阅读 · 0 评论 -
糖果(状态压缩,爆搜剪枝)
糖果题目链接糖果店的老板一共有 M 种口味的糖果出售。为了方便描述,我们将 M 种口味编号 1∼M。小明希望能品尝到所有口味的糖果。遗憾的是老板并不单独出售糖果,而是 K 颗一包整包出售。幸好糖果包装上注明了其中 K 颗糖果的口味,所以小明可以在买之前就知道每包内的糖果口味。给定 N 包糖果,请你计算小明最少买几包,就可以品尝到所有口味的糖果。输入格式第一行包含三个整数 N,M,K。接下来 N 行每行 K 这整数 T1,T2,⋅⋅⋅,TK,代表一包糖果的口味。输出格式一个整数表示答案原创 2021-03-04 10:40:32 · 151 阅读 · 1 评论 -
正则问题(递归搜索)
正则问题题目链接考虑一种简单的正则表达式:只由 x ( ) | 组成的正则表达式。小明想求出这个正则表达式能接受的最长字符串的长度。例如 ((xx|xxx)x|(x|xx))xx 能接受的最长字符串是: xxxxxx,长度是6。输入格式一个由x()|组成的正则表达式。输出格式输出所给正则表达式能接受的最长字符串的长度。数据范围输入长度不超过100,保证合法。输入样例:((xx|xxx)x|(x|xx))xx输出样例:6算法分析我们采取递归搜索的方法,详情见代码这里解释一下原创 2021-03-03 18:25:32 · 539 阅读 · 1 评论 -
聪明的燕姿(约数和,爆搜)
聪明的燕姿题目链接城市中人们总是拿着号码牌,不停寻找,不断匹配,可是谁也不知道自己等的那个人是谁。可是燕姿不一样,燕姿知道自己等的人是谁,因为燕姿数学学得好!燕姿发现了一个神奇的算法:假设自己的号码牌上写着数字 S,那么自己等的人手上的号码牌数字的所有正约数之和必定等于 S。所以燕姿总是拿着号码牌在地铁和人海找数字(喂!这样真的靠谱吗)。可是她忙着唱《绿光》,想拜托你写一个程序能够快速地找到所有自己等的人。输入格式输入包含 k 组数据。对于每组数据,输入包含一个号码牌 S。输出格式对于原创 2021-03-02 21:40:01 · 247 阅读 · 0 评论 -
大臣的旅费(DFS树的直径)
大臣的旅费题目链接很久以前,T王国空前繁荣。为了更好地管理国家,王国修建了大量的快速路,用于连接首都和王国内的各大城市。为节省经费,T国的大臣们经过思考,制定了一套优秀的修建方案,使得任何一个大城市都能从首都直接或者通过其他大城市间接到达。同时,如果不重复经过大城市,从首都到达每个大城市的方案都是唯一的。J是T国重要大臣,他巡查于各大城市之间,体察民情。所以,从一个城市马不停蹄地到另一个城市成了J最常做的事情。他有一个钱袋,用于存放往来城市间的路费。聪明的J发现,如果不在某个城市停下来修整原创 2021-03-01 23:29:55 · 462 阅读 · 1 评论 -
全球变暖(连通块,bfs)
全球变暖题目链接你有一张某海域 N×N 像素的照片,”.”表示海洋、”#”表示陆地,如下所示:........##.....##........##...####....###........其中”上下左右”四个方向上连在一起的一片陆地组成一座岛屿,例如上图就有 2 座岛屿。由于全球变暖导致了海面上升,科学家预测未来几十年,岛屿边缘一个像素的范围会被海水淹没。具体来说如果一块陆地像素与海洋相邻(上下左右四个相邻像素中有海洋),它就会被淹没。例如上图中的海域未来会变成如下样子:.原创 2021-03-01 22:08:44 · 129 阅读 · 0 评论 -
递归实现排列型枚举
递归实现排列型枚举题目链接把 1~n 这 n 个整数排成一行后随机打乱顺序,输出所有可能的次序。输入格式一个整数n。输出格式按照从小到大的顺序输出所有方案,每行1个。首先,同一行相邻两个数用一个空格隔开。其次,对于两个不同的行,对应下标的数一一比较,字典序较小的排在前面。数据范围1≤n≤9输入样例:3输出样例:1 2 31 3 22 1 32 3 13 1 23 2 1代码实现第一种暴力枚举,状态表示#include<iostream>#includ原创 2021-02-21 23:42:55 · 91 阅读 · 0 评论 -
递归实现指数型枚举
递归实现指数型枚举题目链接从 1~n 这 n 个整数中随机选取任意多个,输出所有可能的选择方案。输入格式输入一个整数n。输出格式每行输出一种方案。同一行内的数必须升序排列,相邻两个数用恰好1个空格隔开。对于没有选任何数的方案,输出空行。本题有自定义校验器(SPJ),各行(不同方案)之间的顺序任意。数据范围1≤n≤15输入样例:3输出样例:322 311 31 21 2 3算法分析我们按位枚举,每一位选或者不选2种所以最多215.然后我们递归每一种状态是15*21原创 2021-02-21 23:01:10 · 98 阅读 · 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原创 2021-02-21 22:20:50 · 267 阅读 · 0 评论 -
通信网络(dfs)
通信网络题目链接某国的军队由 N 个部门组成,为了提高安全性,部门之间建立了 M 条通路,每条通路只能单向传递信息,即一条从部门 a 到部门 b 的通路只能由 a 向 b 传递信息。信息可以通过中转的方式进行传递,即如果 a 能将信息传递到 b,b 又能将信息传递到 c,则 a 能将信息传递到 c。一条信息可能通过多次中转最终到达目的地。由于保密工作做得很好,并不是所有部门之间都互相知道彼此的存在。只有当两个部门之间可以直接或间接传递信息时,他们才彼此知道对方的存在。部门之间不会把自己知道哪些原创 2021-02-21 21:13:58 · 321 阅读 · 0 评论 -
最优配餐(多源bfs)
最优配餐题目链接栋栋最近开了一家餐饮连锁店,提供外卖服务。随着连锁店越来越多,怎么合理的给客户送餐成为了一个急需解决的问题。栋栋的连锁店所在的区域可以看成是一个 n×n 的方格图(如下图所示),方格的格点上的位置上可能包含栋栋的分店(绿色标注)或者客户(蓝色标注),有一些格点是不能经过的(红色标注)。方格图中的线表示可以行走的道路,相邻两个格点的距离为 1。栋栋要送餐必须走可以行走的道路,而且不能经过红色标注的点。送餐的主要成本体现在路上所花的时间,每一份餐每走一个单位的距离需要花费 1 块原创 2021-02-21 20:10:51 · 334 阅读 · 0 评论 -
星空之夜(哈希+DFS)
星空之夜题目链接夜空深处,闪亮的星星以星群的形式出现在人们眼中,形态万千。一个星群是指一组非空的在水平,垂直或对角线方向相邻的星星的集合。一个星群不能是一个更大星群的一部分。星群可能是相似的。如果两个星群的形状、包含星星的数目相同,那么无论它们的朝向如何,都认为它们是相似的。通常星群可能有 8 种朝向,如下图所示:现在,我们用一个二维 01 矩阵来表示夜空,如果一个位置上的数字是 1,那么说明这个位置上有一个星星,否则这个位置上的数字应该是 0。给定一个夜空二维矩阵,请你将其中的所有星群原创 2021-02-18 17:48:39 · 139 阅读 · 0 评论 -
棋盘挑战(dfs爆搜,剪枝)
棋盘挑战题目链接给定一个 N×N 的棋盘,请你在上面放置 N 个棋子,要求满足:每行每列都恰好有一个棋子每条对角线上都最多只能有一个棋子1 2 3 4 5 61 | | O | | | | |2 | | | | O | | |3 | | | | | | O |4 | O | | | | | |5 | | | O | | | |6 | | | | | O原创 2021-02-17 22:36:33 · 149 阅读 · 0 评论 -
数独简单版
数独简单版题目链接数独是一种传统益智游戏,你需要把一个 9×9 的数独补充完整,使得图中每行、每列、每个 3×3 的九宫格内数字 1∼9 均恰好出现一次。请编写一个程序填写数独。输入格式输入共 9 行,每行包含一个长度为 9 的字符串,用来表示数独矩阵其中的每个字符都是 1∼9 或 .(表示尚未填充)。输出格式输出补全后的数独矩阵。数据保证有唯一解。输入样例:.2738. .1..1. . .6735. . . . . . .293.5692.8.. . . . . . .原创 2021-02-05 16:12:03 · 644 阅读 · 2 评论 -
加分二叉树(区间dp,二叉树前序输出)
加分二叉树题目链接设一个n个节点的二叉树tree的中序遍历为(1,2,3,…,n),其中数字1,2,3,…,n为节点编号。每个节点都有一个分数(均为正整数),记第i个节点的分数为di,tree及它的每个子树都有一个加分,任一棵子树subtree(也包含tree本身)的加分计算方法如下: subtree的左子树的加分 × subtree的右子树的加分 + subtree的根的分数 若某个子树为空,规定其加分为1。叶子的加分就是叶节点本身的分数,不考虑它的空子树。试求一棵符合中序遍历为(1,原创 2021-02-04 15:40:59 · 141 阅读 · 0 评论 -
红与黑(bfs 连通块)
红与黑题目链接有一间长方形的房子,地上铺了红色、黑色两种颜色的正方形瓷砖。你站在其中一块黑色的瓷砖上,只能向相邻(上下左右四个方向)的黑色瓷砖移动。请写一个程序,计算你总共能够到达多少块黑色的瓷砖。输入格式输入包括多个数据集合。每个数据集合的第一行是两个整数 W 和 H,分别表示 x 方向和 y 方向瓷砖的数量。在接下来的 H 行中,每行包括 W 个字符。每个字符表示一块瓷砖的颜色,规则如下1)‘.’:黑色的瓷砖;2)‘#’:红色的瓷砖;3)‘@’:黑色的瓷砖,并且你站在这块瓷砖上。该原创 2021-02-02 11:26:58 · 159 阅读 · 0 评论 -
Jelly(三维bfs)
牛客小白月赛 21 J Jelly题目链接算法分析这题是个三维bfs,其实跟二维差不了多少代码实现#include<iostream>#include<cstdio>#include<algorithm>#include<math.h>#include<string>#include<cstring>#include<queue>using namespace std;const int maxn原创 2021-01-18 22:42:42 · 96 阅读 · 0 评论 -
小小小马(爆搜)
牛客小白月赛20 I 小小小马题目链接算法分析dfs的题,有人用找规律也可以算法实现#include<iostream>#include<cstdio>#include<math.h>using namespace std;const int maxn=2e3+5;int vis[maxn][maxn];int n,m;int dis[8][2]={{1,-2},{2,-1},{2,1},{1,2},{-1,2},{-2,1},{-2,-1},{原创 2021-01-15 22:19:50 · 129 阅读 · 0 评论 -
3的倍数(暴力搜索)
牛客小白月赛20D 3的倍数题目链接算法分析n最大为15,范围比较小,所以直接来采用爆搜就行算法实现#include<iostream>#include<cstdio>#include<string>#include<cstring>#include<math.h>using namespace std;int ch[20][30];//ch[i][j]记录第i个字符串中j的个数,j为字符转换后的数字int dp[30];/原创 2021-01-15 21:37:28 · 184 阅读 · 0 评论 -
鸣人和佐助
鸣人和佐助题目链接题目描述佐助被大蛇丸诱骗走了,鸣人在多少时间内能追上他呢?已知一张地图(以二维矩阵的形式表示)以及佐助和鸣人的位置。地图上的每个位置都可以走到,只不过有些位置上有大蛇丸的手下,需要先打败大蛇丸的手下才能到这些位置。鸣人有一定数量的查克拉,每一个单位的查克拉可以打败一个大蛇丸的手下。假设鸣人可以往上下左右四个方向移动,每移动一个距离需要花费 1 个单位时间,打败大蛇丸的手下不需要时间。如果鸣人查克拉消耗完了,则只可以走到没有大蛇丸手下的位置,不可以再移动到有大蛇丸手下的位置。佐助在原创 2020-11-26 21:08:15 · 705 阅读 · 0 评论 -
拯救行动
拯救行动题目链接题目描述公主被恶人抓走,被关押在牢房的某个地方。牢房用N×M (N,M≤200) 的矩阵来表示。矩阵中的每项可以代表道路(@)、墙壁(#)、和守卫(x)。英勇的骑士(r)决定孤身一人去拯救公主(a)。我们假设拯救成功的表示是 “骑士到达了公主所在的位置”。由于在通往公主所在位置的道路中可能遇到守卫,骑士一旦遇到守卫,必须杀死守卫才能继续前进。现假设骑士可以向上、下、左、右四个方向移动,每移动一个位置需要 11 个单位时间,杀死一个守卫需要花费额外的 11 个单位时间。同时假设骑士足原创 2020-11-26 17:10:27 · 716 阅读 · 0 评论 -
仙岛求药
仙岛求药题目链接题目描述少年李逍遥的婶婶病了,王小虎介绍他去一趟仙灵岛,向仙女姐姐要仙丹救婶婶。叛逆但孝顺的李逍遥闯进了仙灵岛,克服了千险万难来到岛的中心,发现仙药摆在了迷阵的深处。迷阵由M×N 个方格组成,有的方格内有可以瞬秒李逍遥的怪物,而有的方格内则是安全。现在李逍遥想尽快找到仙药,显然他应避开有怪物的方格,并经过最少的方格,而且那里会有神秘人物等待着他。现在要求你来帮助他实现这个目标。输入格式第一行输入两个非零整数 M 和 N,两者均不大于 2020。MM 表示迷阵行数, NN 表示迷阵列原创 2020-11-26 16:29:52 · 300 阅读 · 0 评论 -
迷宫 (一)
迷宫(一)题目链接题目描述一天蒜头君掉进了一个迷宫里面,蒜头君想逃出去,可怜的蒜头君连迷宫是否有能逃出去的路都不知道。看在蒜头君这么可怜的份上,就请聪明的你告诉蒜头君是否有可以逃出去的路。输入格式第一行输入两个整数 n 和m,表示这是一个n×m 的迷宫。接下来的输入一个 n 行 m 列的迷宫。其中 ‘S’ 表示蒜头君的位置,’*‘表示墙,蒜头君无法通过,’.‘表示路,蒜头君可以通过’.'移动,'T’表示迷宫的出口(蒜头君每次只能移动到四个与他相邻的位置——上,下,左,右)。输出格式输出一个原创 2020-11-26 16:06:54 · 937 阅读 · 0 评论 -
迷宫 (三)
迷宫(三)题目链接题目描述经过思考蒜头君终于解决了怎么计算一个迷宫的最短路问题,于是蒜头君找到一个新的迷宫图,来验证自己是否真的会计算一个迷宫的最短路。为了检验自己计算的是否正确,蒜头君特邀你一起来计算。输入格式第一行输入两个整数 n 和 m,表示这是一个 n×m 的迷宫。1≤n,m≤15。接下来的输入一个 n 行 m 列的迷宫。其中’@‘表示蒜头君的位置,’#‘表示墙,蒜头君无法通过,’.‘表示路,蒜头君可以通过’.‘移动,所有在迷宫最外围的’.'都表示迷宫的出口(蒜头君每次只能移动到四个与原创 2020-11-26 15:54:52 · 372 阅读 · 0 评论 -
迷宫 (二)
迷宫(二)题目链接题目描述蒜头君在你的帮助下终于逃出了迷宫,但是蒜头君并没有沉浸于喜悦之中,而是很快的又陷入了思考,从这个迷宫逃出的最少步数是多少呢?输入格式第一行输入两个整数 n 和 m,表示这是一个n×m 的迷宫。1≤n,m≤10。接下来的输入一个 n 行 m 列的迷宫。其中 ‘S’ 表示蒜头君的位置,’*‘表示墙,蒜头君无法通过,’.‘表示路,蒜头君可以通过’.'移动,'T’表示迷宫的出口(蒜头君每次只能移动到四个与他相邻的位置——上,下,左,右)。输出格式输出整数,表示蒜头君逃出迷宫原创 2020-11-25 22:14:40 · 1016 阅读 · 0 评论 -
Rescue (bfs广度优先搜索)
Rescue原题链接Angel was caught by the MOLIGPY! He was put in prison by Moligpy. The prison is described as a N * M (N, M <= 200) matrix. There are WALLs, ROADs, and GUARDs in the prison.Angel’s friends want to save Angel. Their task is: approach Angel. W原创 2020-07-24 17:09:23 · 120 阅读 · 0 评论 -
BFS广度优先搜索模板
BFS广度优先搜索模板#include<iostream>#include<cstring>#include<algorithm>#include<cstdio>#include<string>#include<queue>using namespace std;struct node{ //定义点位置的结构体 int x; int y; int step;};char a[210][210];//地图原创 2020-07-24 17:20:05 · 103 阅读 · 0 评论 -
迷宫(深度优先搜索dfs模板题)
迷宫题目链接给定一个N*M方格的迷宫,迷宫里有T处障碍,障碍处不可通过。给定起点坐标和终点坐标,问: 每个方格最多经过1次,有多少种从起点坐标到终点坐标的方案。在迷宫中移动有上下左右四种方式,每次只能移动一个方格。数据保证起点上没有障碍。Input第一行N、M和T,N为行,M为列,T为障碍总数。第二行起点坐标SX,SY,终点坐标FX,FY。接下来T行,每行为障碍点的坐标。Output给定起点坐标和终点坐标,问每个方格最多经过1次,从起点坐标到终点坐标的方案总数。Sample Input2 2原创 2020-07-24 17:28:34 · 423 阅读 · 0 评论 -
DFS(深度优先搜索模板)
DFS(深度优先搜索模板)DFS比BFS代码短,BFS的关键是分层,而DFS是遍历和回溯#include<iostream>#include<cstring>#include<string>using namespace std;int dir[4][2]={{-1,0},{1,0},{0,-1},{0,1}};//方向数组int ***//定义全局变量char a[100][100];//定义字符地图int vis[100][100];//标记数组来记原创 2020-07-24 17:39:38 · 168 阅读 · 0 评论 -
P1443 马的遍历
P1443 马的遍历题目链接题目描述有一个n*m的棋盘(1<n,m<=400),在某个点上有一个马,要求你计算出马到达棋盘上任意一个点最少要走几步输入格式一行四个数据,棋盘的大小和马的坐标输出格式一个n*m的矩阵,代表马到达某个点最少要走几步(左对齐,宽5格,不能到达则输出-1)输入样例3 3 1 1输出样例0 3 23 -1 12 1 4题目分析bfs的入门题,可以用队列queue<pair<int,int> &原创 2020-11-23 22:22:34 · 81 阅读 · 0 评论