![](https://img-blog.csdnimg.cn/20210921195939255.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
搜索算法
BFS,DFS,A-star,搜索剪枝
繁凡さん
只想当个小透明,就图一乐^q^,希望可以做出一些微小的贡献(目前研究方向:自然语言处理、深度学习中的对抗攻击、元学习,欢迎大佬们来与我交流^0^)
展开
-
【算法】BFS刷题总结
姊妹篇(DFS)原创 2019-12-22 21:23:09 · 494 阅读 · 0 评论 -
AT2362 [AGC012B] Splatter Painting(思维、dfs染色、剪枝)
AT2362 [AGC012B] Splatter Painting题意给一个n个点m条边的无向图,有q次操作 第i次操作,给出v,d,c,把所有到点v的距离不超过d的点都染上颜色c 问最后每个点的颜色 n,m, q, c <= 100000 d <= 10数据范围比较大, 我们如果直接暴力dfs,一直修改颜色一定会超时,然而题目要求的是最后的颜色,正难则反,如果我们倒着来染色,就会发现最后染色的就一定是答案,所以我们只需要倒着去dfs染色,如果这个点没有被染过色就染,染过色就过,原创 2020-09-10 16:41:00 · 413 阅读 · 1 评论 -
【图论专题】BFS中的双向广搜 和 A-star
双向广搜AcWing 190. 字串变换#include <cstring>#include <iostream>#include <algorithm>#include <unordered_map>#include <queue>using namespace std;const int N = 6;int n;string a[N], b[N];int extend(queue<string>&am原创 2020-08-03 21:28:42 · 388 阅读 · 0 评论 -
数独(DFS)
题目链接P1784 数独题目描述数独是根据9×9盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行、每一列、每一个粗线宫内的数字均含1-9,不重复。每一道合格的数独谜题都有且仅有唯一答案,推理方法也以此为基础,任何无解或多解的题目都是不合格的。芬兰一位数学家号称设计出全球最难的“数独游戏”,并刊登在报纸上,让大家去挑战。这位数学家说,他相信只有“智慧最顶尖”的人才有可能破解这个“数...原创 2020-03-04 18:08:55 · 499 阅读 · 2 评论 -
CF448C Painting Fence(分治递归/DFS)难度⭐⭐⭐
题目链接有n块连着的木板,每个木板的高度为hih_ihi,你需要把这n块木板上色,每次 上色你可以选择竖着刷完一块木板,或者横着刷一个高度单位的连续的木板(不能中 间空着的不能跳跃),问最少需要刷几次。(注意相当于有一个宽1的刷子,每次可以刷无限长但是宽度只有1)52 2 1 2 1322 22考虑横着涂一次的情况,那么有两个显而易见的事实。这次涂色长度必须尽可能大。...原创 2020-03-07 12:25:39 · 336 阅读 · 0 评论 -
UVA1103 古代象形符号 Ancient Messages解题报告(DFS,字符串)难度⭐⭐⭐⭐
题目翻译为了识别3000年前古埃及用到的6种象形文字。每组数据包含一个H行W列的字符矩阵(H≤200,W≤50 ),每个字符为4个相邻像素点的十六进制(例如,10011100对应的字符就是9c)。转化为二进制后1表示黑点,0表示白点。输入满足以下条件:不会出现上述6种符号之外的其他符号。输入至少包含一个符号,且每个黑像素都属于一个符号。输入至少包含一个符号,且每个黑像素都属于一个符号。每个...原创 2020-02-18 20:56:56 · 739 阅读 · 0 评论 -
【算法】DFS 刷题总结
这可是个大工程,慢慢学,以后把刷到的相关题全部总结下来,写下思路和教训,供以后复习使用。深搜染色例题1:单词方阵给一n×nn \times nn×n的字母方阵,内可能蕴含多个“yizhong”单词。单词在方阵中是沿着同一方向连续摆放的。摆放可沿着 888 个方向的任一方向,同一单词摆放时不再改变方向,单词与单词之间可以交叉,因此有可能共用字母。输出时,将不是单词的字母用*代替,以突出显示单词...原创 2019-12-03 12:31:27 · 1507 阅读 · 0 评论 -
[P1434 [SHOI2002]滑雪](DFS,记忆化搜索)
P1434 [SHOI2002]滑雪题目描述Michael喜欢滑雪。这并不奇怪,因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael想知道在一个区域中最长的滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子:1 2 3 4 516 17 18 19 615 2...原创 2020-02-19 15:44:46 · 348 阅读 · 0 评论 -
【搜索专题】DFS之连通性模型与搜索顺序
内部搜索不用(能)回溯,外部搜索才需要(必须)回溯和恢复现场A、AcWing 1112. 迷宫内部搜索的一道dfs模板题,别忘了vis#include<cstdio>#include<algorithm>#include<cstring>using namespace std;const int N = 110;int a[N];int n, m;int k;char g[N][N];int sx, sy, ex, ey;bool vis原创 2020-08-05 16:53:19 · 397 阅读 · 0 评论 -
解题报告:luogu P1688 新单词接龙问题【trie树、dfs、DP递推】
单词的变化有三种:1删掉一个字母,2:插入一个字符,3:将一个字符变成另外一个字符dig→fig→fin→fine→winedig→fig→fin→fine→winedig→fig→fin→fine→wine要求保证字典序从小到大,那么我们在变换的时候直接对于一个字符串的当前字母,从a到z遍历根据题意变换,那么所有能连接上(变成完全一样的字符串)的顺序就是按照字典序升序的。假设我们已经知道了从第 i+1i+1i+1 (1<=i+1<=n)(1 <= i+1 <= n)(1&l.原创 2020-08-05 22:36:32 · 295 阅读 · 0 评论 -
[SCOI2005]栅栏(贪心+二分+dfs)难度⭐⭐⭐⭐
[SCOI2005]栅栏(贪心+二分+dfs)P2329 [SCOI2005]栅栏题目描述农夫约翰打算建立一个栅栏将他的牧场给围起来,因此他需要一些特定规格的木材。于是农夫约翰到木材店购买木材。可是木材店老板说他这里只剩下少部分大规格的木板了。不过约翰可以购买这些木板,然后切割成他所需要的规格。而且约翰有一把神奇的锯子,用它来锯木板,不会产生任何损失,也就是说长度为10的木板可以切成长度为8...原创 2020-02-19 15:42:07 · 515 阅读 · 0 评论 -
0x22.搜索 - 深度优先搜索
深度优先搜索算法是一种用于遍历或搜索树或图的算法,本篇博客带你深入浅出了解DFS,从基础习题到进(超)阶(难)例题,帮你掌握DFS的精髓!原创 2020-05-24 22:29:48 · 485 阅读 · 0 评论 -
HDU - 5637 Transform (思维、bfs预处理)
HDU - 5637题目大意:给出n个数的序列a,对于一个整数x,有两种操作:1.改变x二进制中任一位2.将x变为x^a[i]m次查询,每次查询输入两个整数x和y,问x最少经过多少次操作可以变成y求最少多少次操作可以值得x变成y实际上不就是一个“迷宫求最短路”嘛。这里是状态转移到另一个状态的最短路,也就是直接bfs即可。易得最先转移到的就是最短路。数据比较大m有1e5,每次输入数据再爆搜肯定要超时。因为这里都只涉及到异或操作。我们发现s^(t[1]^t[2]^...t[j])=t。因为原创 2020-08-08 21:07:40 · 226 阅读 · 0 评论 -
【搜索专题】BFS中的多源BFS-双端队列BFS
A、AcWing 173. 矩阵距离所有点到多个终点的最短距离 我们可以建一个虚拟源点,虚拟源点到所有终点连0权的边,跑一次单源最短路即可 答案就是每一个点到虚拟源点的最近距离先将dist全部置为-1,可以用来判断是否经过然后直接将所有起点(值为1)dist都置为0然后全部入队跑bfs即可,利用了一个虚拟源点,只不过不用建出来这个源点两段性 =>=>=> 单调性,主要是单调性起作用选好起点直接跑bfs就会更新所有的未更新的结点每次入队最后出队的时候就已经是是最小值bfs原创 2020-08-02 18:25:15 · 591 阅读 · 1 评论 -
【搜索专题】BFS中的Flood Fill和最短路模型
整理的算法模板合集: ACM模板A、AcWing 1097. 池塘计数基础模板题练练手#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#define x first#define y secondusing namespace std;typedef pair<int, int> PII;const int N = 5007, M原创 2020-08-01 21:20:47 · 324 阅读 · 0 评论 -
UVA816 Abbott的复仇 Abbott's Revenge(final的BFS)(真•答案)
写这道题差点没把我气死,网上的好多题解看了半天结果是假的…题目PDF【分析】 利用队列实现广度搜索BFS来遍历图寻找最短路径。 用一个三元组(r, c, dir)表示“位于(r, c),面朝dir”这个状态。假设入口位置为(r0, c0),朝向为dir,则初始状态并不是(r0, c0, dir),而是(r1, c1, dir),其中,(r1, c1)是(r0, c0)沿着方向d...原创 2020-02-19 18:24:52 · 343 阅读 · 0 评论