![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
搜索
文章平均质量分 50
1
zzqwtc
blog dot zzqwtc dot com
展开
-
AcWing 187. 导弹防御系统 (LIS + dfs)
187. 导弹防御系统题意为了对抗附近恶意国家的威胁,RR 国更新了他们的导弹防御系统。一套防御系统的导弹拦截高度要么一直 严格单调 上升要么一直 严格单调 下降。例如,一套系统先后拦截了高度为 3 和高度为 4 的两发导弹,那么接下来该系统就只能拦截高度大于 4 的导弹。给定即将袭来的一系列导弹的高度,请你求出至少需要多少套防御系统,就可以将它们全部击落。思路和 AcWing 1010. 拦截导弹 很类似的一题 唯一不同的是不仅可以选择上升子序列 也可以选择下降子序列因为数据非常的小 所以原创 2021-03-16 10:54:06 · 3472 阅读 · 0 评论 -
迭代加深-双向DFS-IDAstar
迭代加深避免搜索过深 但答案在较浅的位置这种情况的发生AcWing170. 加成序列满足如下条件的序列X(序列中元素被标号为1、2、3…m)被称为“加成序列”:1、X[1]=1X[1]=1X[1]=12、X[m]=nX[m]=nX[m]=n3、X[1]<X[2]<…<X[m−1]<X[m]X[1]<X[2]<…<X[m-1]<X[m]X[1]<X[2]<…<X[m−1]<X[m]4、对于每个 kkk(2≤k≤m2≤k≤m2原创 2020-11-21 08:57:29 · 2329 阅读 · 0 评论 -
DFS之剪枝
常用的几种剪枝策略1.优化搜索顺序大部分情况下 我们应该优先搜索分支较少的节点例如 分组问题 可以先从花费较大的元素搜索 可以减少状态分支2.排除等效冗余如果不考虑顺序的话 尽量用组合的方式搜索 即与组内元素顺序无关3.可行性剪枝在搜索过程中已经检测到不合法 可以提前退出4.最优性剪枝在搜搜过程中 已经检测到当前答案大于最优解 可以提前退出5.记忆化搜索(DP)AcWing165. 小猫爬山翰翰和达达饲养了N只小猫,这天,小猫们要去爬山。经历了千辛万苦,小猫们终于爬上了山顶,但是疲原创 2020-11-12 23:32:50 · 2210 阅读 · 0 评论 -
DFS之连通性和搜索顺序
连通性Acwing 1112. 迷宫一天ExtenseExtenseExtense在森林里探险的时候不小心走入了一个迷宫,迷宫可以看成是由 n∗n 的格点组成,每个格点只有2种状态,.和#,前者表示可以通行后者表示不能通行。同时当ExtenseExtenseExtense处在某个格点时,他只能移动到东南西北(或者说上下左右)四个方向之一的相邻格点上,ExtenseExtenseExtense想要从点A走到点B,问在不走出迷宫的情况下能不能办到。如果起点或者终点有一个不能通行(为#),则看成无法办到。原创 2020-10-28 09:43:53 · 2031 阅读 · 0 评论 -
双向广搜和A-star
两种算法解决从起点到终点状态过多的问题(BFS剪枝)双向广搜双向广搜实际是BFSBFSBFS的一种剪枝形式 实现方式是 同时从起点和终点搜索到相遇为止AcWing190. 字串变换已知有两个字串 AAA, BBB 及一组字串变换的规则(至多6个规则):A1−>B1A_{1} -> B_{1}A1−>B1A2−>B2A_{2} -> B_{2}A2−>B2…规则的含义为:在 AAA 中的子串 A1A_{1}A1 可以变换为 B1B_{1}B1、原创 2020-10-24 00:41:08 · 2025 阅读 · 0 评论 -
多源BFS-双端队列广搜
多源BFSAcWing173. 矩阵距离给定一个N行M列的01矩阵A,A[i][j]A[i][j]A[i][j] 与 A[k][l]A[k][l]A[k][l] 之间的曼哈顿距离定义为:dist(A[i][j],A[k][l])=∣i−k∣+∣j−l∣dist(A[i][j],A[k][l])=|i−k|+|j−l|dist(A[i][j],A[k][l])=∣i−k∣+∣j−l∣输出一个N行M列的整数矩阵B,其中:B[i][j]=min1≤x≤N,1≤y≤M,A[x][y]=1dist(A[i][原创 2020-10-23 23:41:22 · 1953 阅读 · 0 评论