随笔分类 - 正逆递归&图的遍历搜索递归
摘要:题目链接: 本题做法较多,可dp(记忆化搜索,bfs(想做对需要深度理解bfs和路径条数问题)) dp记忆化搜索没什么坑点,简单 bfs做法很坑,还需要标记数组!要防止重复入队!(k次的时候也会重复入队,即次数要加上,但不能重复入队会多加!) (模拟3,3,4;到k=2和3时可以找到未标记的错误)
阅读全文
摘要:题目链接: 题意有些不清晰容易迷惑,注意2点: //向四周扩散是上下左右//岩浆可以把障碍物融化的意思是(并不是废话!):不能直接把障碍物#设为访问过的点(这样是90分,以后注意尽量分情况考虑不会错!),因为可能通过它向四周扩散!!! //另外注意,bfs好习惯写法,大前提最好放方面 结构更清晰 且
阅读全文
摘要:题目链接:https://ac.nowcoder.com/acm/contest/218/A 关键2点: 1.从边界处找闭环(这个很好想到) 2.存图(字符)方式不爆,二维转一维计算 (另外string s[maxn],直接字符串数组也可以!当初被误导了没想起来唉QAQ~~) 关于第2点,深受痛感(
阅读全文
摘要:题目链接:https://www.luogu.org/problemnew/show/P1064 这里不讲dp,只讲搜索记忆化。这题看到时比较难,无从入手,但想通后就和上一题开心的金明一样了,只不过搜索时由2选择方向变成了5个选择方向而已,其他基本不变。 .刚开始想直接在上一题记忆化的代码上修改一下
阅读全文
摘要:题目链接:https://www.luogu.org/problemnew/show/P1060 本题可太多做法,可dp,可暴力递归,可记忆化,这里不讲dp,只是搜索递归专场。 需要注意的是,每个物品只能取一次! 暴力正向递归的话有两个看待(思考)角度,角度不同递归方式和复杂度也不一样。 一: 1.
阅读全文
摘要:题目链接:https://www.luogu.org/problemnew/show/P1118 这题直接用全排列会超时,需要找出规律,用杨辉三角计算规律优化。 假设一个排列数字用a,b,c,d....代替,那么它最终的和是有规律的: 如果n为4,那么sum是a+3b+3c+d。 如果n为5,那么s
阅读全文
摘要:题目链接:https://www.luogu.org/problemnew/show/P1216 题目很简单,是dp和记忆化搜索的入门练手好题 有一个坑点,全为0的时候,记忆化没初始化为其它值的话,还是暴力递归绝对超时。。(所以记忆化时,根据题目要求分析,一般都初始化为-1) 完。
阅读全文
摘要:题目链接:https://www.luogu.org/problemnew/show/P1135 题目意思很明显,有很多种情况,找到最的方法,也就是最短路。 看了各种大佬题解,有dfs,bfs搜索做法,floyd,djkstra最短路做法,%%%,这里就只写蒟蒻的深搜做法。。。 1.MLE,M8个点
阅读全文
摘要:题目链接:https://www.luogu.org/problemnew/show/P1057 刚看到这道题,就是正向暴力递归暴力出所有情况,而且数据范围这么小,就写了暴力递归,但是。。。tle好几个点。。。 仔细跟着程序走了一遍样例,发现暴力递归过程中好多点都重复计算,重复暴力了,So就改变思维
阅读全文
摘要:题目链接:https://www.luogu.org/problemnew/show/P1433#sub 这道题就是正向递归暴力找到所有情况,取最小值!(写出来跟全排列很像,主要是因为回溯更新,暴力所有情况找到最小的) 两个坑点: 1.递归反复开方很耗时间,需要预处理两点距离。 2.优化剪枝,如果当
阅读全文
摘要:题目链接:https://www.luogu.org/problemnew/show/P1434 刚开始最先想到的就是正向递归遍历,遍历所有情况方法,记录找到最长的,正向递归遍历也不难写,但会超时。 观察后,发现它是有规律的,或者说已经遍历过的点需要多次用到,那就逆向记忆化。 注意: 图的遍历,标记
阅读全文
摘要:题目链接:https://www.luogu.org/problemnew/show/P1192 题目很有价值,用搜索写的话,可以加深对递归搜索的理解。 一般这样的递推题规律题可以用:dp或记忆化(我就用记忆化了 所以啊,用正向递归还是逆向递归,关键看题目有没有规律,递推性!(数据范围,题目求的是否
阅读全文
摘要:题目链接:https://www.luogu.org/problemnew/show/P1025 这是很有价值的一道题,做法也很多,可以搜索可以dp,这里就只讲搜索做法了(dp蒟蒻 完。
阅读全文
摘要:题目链接:https://www.luogu.org/problemnew/show/P1141 做这到题有2点需要注意: 1.发现每个连通的点他们的答案都是一样的!这个很重要,不然后面没法做。 2.接下来就是找连通块了。 题目相当于求连通块,这个比较简单,但加上了m次询问后就是难点所在,很容易超时
阅读全文
摘要:题目链接:https://www.luogu.org/problemnew/show/P1019 这题就是搜索dfs遍历所有连接情况,找最大的。 难点在于:重合部分的处理,怎样获取这个重合长度。 另外,容易理解错的2点 1.一个字符开头,必定是包含的,所以要在主函数中for一个一个找哪个单词包含了它
阅读全文
摘要:题目链接:https://www.luogu.org/problemnew/show/P1219 这题就是搜索递归dfs+回溯更新,有多个标记数组。 难点在于:怎样标记(列标记还好,对角线标记麻烦!),是关键。注意怎样标记需要必须想出这个规律:主对角线相减为定值(相减可能为负数,所以统一加n不影响结
阅读全文
摘要:题目链接:https://www.luogu.org/problemnew/show/P1101 题目比较简单,就是用来练搜索dfs的。 没有什么难点,要说的话,就是把多条繁琐的if换成for循环形式。 循环形式 递归dfs形式(多条if代表多个方向) 精简化递归dfs形式(把方向存在数组里代替多条
阅读全文
摘要:题目链接:https://www.luogu.org/problemnew/show/P1464 分析和思路: 直接搜索超时,必须用数组记忆化一下 难点在于:怎样用三维数组保存结果。使之记忆化。
阅读全文