
ACM - BFS/DFS
BFS/DFS
行码棋
ZZUer -> USTCer,退役ACMer。个人站点:wyqz.top
展开
-
递归求数组的最大值
递归求数组的最大值将数组一直二分下去,对数组的每个值进行遍历。原创 2021-01-29 17:49:37 · 1759 阅读 · 0 评论 -
【树上差分】CF 1076E. Vasya and a Tree
一棵树,它有n个节点,1号节点为根节点,初始所有点的权值为0。定义以下两个东西:函数d(i,j): 指节点i到j所经过边的数量。x节点的k级子树,指满足以下条件点的集合:① x为该点的祖先,规定自己也是自己的祖先。②d(i,j)≤k。m条要求要你来解决:给出v,d,x,将以v节点的d级子树的权值加上x。当处理完所有的要求时,输出所有点的权值。...原创 2022-08-05 22:24:39 · 491 阅读 · 0 评论 -
【DFS】【剪枝】数独(简单版)
题目链接:https://www.acwing.com/problem/content/168/搜索以及剪枝策略:搜索顺序优化: 首先搜索可填最少数量数字的格子二进制优化:用两个数组row[], col[]存储每一行和每一列的可以填的数的状态,一共9位二进制,该位为1时代表可以选,为0时代表不可以选。lowbit优化:取每一位可以选的数时采用的操作代码解释:mn:就是单元格中求 最小的可以填的个数ones[i]:i二进制中1的个数dfs(cnt):代表从可以填cnt个数开始搜索#原创 2022-04-20 19:42:27 · 1254 阅读 · 0 评论 -
【DFS】【剪枝】小猫爬山
https://www.acwing.com/problem/content/167/使用dfs爆搜,需要对决策进行剪枝剪枝的策略有:优化搜索顺序:优先对前期搜索节点少的决策树进行搜索排除等效冗余:对与答案等效的搜索树不再进行搜索可行性剪枝:如果到达的状态无法到达正确答案,及时进行回溯剪枝最优性剪枝:当搜索到的答案已经不是最优的答案,及时回溯剪枝w[i]w[i]w[i] 记录第i只小猫的重量sum[i]sum[i]sum[i] 记录第i个缆车的总重量dfs(u, k)中,u代表当原创 2022-04-20 16:29:19 · 1271 阅读 · 0 评论 -
【DFS】单词接龙
博客主页: https://blog.youkuaiyun.com/qq_50285142欢迎点赞????收藏✨关注❤留言 ???? 如有错误,敬请指正????虽然生活很难,但我们也要一直走下去????原题链接思路:f[i][j]f[i][j]f[i][j]数组表示第i个单词和第j个单词能重合的字母数(前后缀匹配的位数)used[i]used[i]used[i]表示第i个单词使用的次数dfs()dfs()dfs()中参数的含义 :sss :代表已经拼接好的字符串curcurcur:表示当前拼接好原创 2021-10-25 19:52:32 · 454 阅读 · 0 评论 -
【DFS】【NOI】【基础搜索题】马走日
博客主页: https://blog.youkuaiyun.com/qq_50285142欢迎点赞????收藏✨关注❤留言 ???? 如有错误,敬请指正????虽然生活很难,但我们也要一直走下去????题目链接题意:马在中国象棋以日字形规则移动。请编写一段程序,给定n*m大小的棋盘,以及马的初始位置(x,y),要求不能重复经过棋盘上的同一个点,计算马可以有多少途径遍历棋盘上的所有点总的来说就是dfs每个方向进行dfs,每个方向分支出一种情况,用st[]st[]st[]数组设置智能遍历一次,并且原创 2021-10-24 09:20:36 · 2077 阅读 · 0 评论 -
【双端队列BFS】【AcWing】电路维修
博客主页: https://blog.youkuaiyun.com/qq_50285142欢迎点赞????收藏✨关注❤留言 ???? 如有错误,敬请指正????虽然生活很难,但我们也要一直走下去????题目链接思路:使用双端队列解决边权值只有0和1的图的问题如果某边的权值为1,则加入队尾如果某边的权值为0,则加入队首,优先选择边权值为0的节点进行扩展本题的思想类似于dijkstra算法,维护两个集合,一个是已经找到最小距离的集合,另一个是最小距离的点的扩展的集合。双端队列中的点都是待扩展的点原创 2021-10-23 19:45:09 · 157 阅读 · 0 评论 -
【多源BFS】【acwing】矩阵距离
博客主页: https://blog.youkuaiyun.com/qq_50285142欢迎点赞????收藏✨关注❤留言 ???? 如有错误,敬请指正????虽然生活很难,但我们也要一直走下去????题目链接题意:一个01矩阵,求每个0到到最近1 的曼哈顿距离思路:使用多源BFSbfs具有层次单调性,题目让求每个数与1的距离,那么我们可以转化为求1到周围的0的最近距离,变相求出了0到最近1的距离。把距离初始化为-1,把每个1的位置入队,不断从每个1的位置向周围扩展,并不断更新距离。做完一原创 2021-10-17 10:09:14 · 167 阅读 · 0 评论 -
【BFS】魔板
博客主页: https://blog.youkuaiyun.com/qq_50285142欢迎点赞????收藏✨关注❤留言 ???? 如有错误,敬请指正????虽然生活很难,但我们也要一直走下去????题目链接思路:因为魔板只要三种移动的方式,我们可以逐层进行枚举,相当于对一颗三叉树进行BFS遍历(一层一层的遍历)我们用字符串来记录移动时候的状态,每次移动到没有出现过的状态就将它对应的状态字符串加入到队列中,同时记录每个状态到达的前驱节点,这主要是用来最后的路径输出的。最后输出的一定是最先出现的状原创 2021-10-20 17:07:48 · 301 阅读 · 0 评论