
记忆化搜索
文章平均质量分 55
dp
野指针*
这个作者很懒,什么都没留下…
展开
-
数位DP(预处理, 倍增的拼凑思想, 试填法 或者 记忆化搜索)
数位DP是一种特殊的计数DP, 与数字统计有关,一般求满足限制条件的第K小的数是多少,或者求在区间[L, R]内有多少满足条件的数字. 解决方法:先用动态规划进行预处理,基于"拼凑"思想,用"试填法"求出最终的答案. (动态规划预处理部分的作用充当记忆作用,事实上这就是动态规划的本质) 例题一: 直接从前向后枚举答案的每一位数(从小到大枚举)是多少,计算在这样的前缀下,后面的总排列数,如果加起来大于等于C, 说明当前的一位数就是这个枚举的数,我们继续讨论下一位即可. 我们先用动态规划预处理出木原创 2022-04-06 21:40:36 · 607 阅读 · 1 评论 -
AcWing 191. 天气预报 (dfs + 记忆化搜索 + dp)
这道题有个很重要的性质: 只要四个角落在7天之内有下雨,那么就是合法的. 接下来我们以中间的坐标开始往四边搜索,如果能熬过第n天,那么就输出1,否则输出0.这题用深搜和宽搜都可以.但是暴力搜索时间复杂度太大了,我们需要一些优化,于是我们使用记忆化搜索,也就是dp,我们用,表示当前是第day天,云在(x, y)的时候,左上,左下,右上,右下角距离上次下雨的天数. #include <bits/stdc++.h> // #define LOCAL #define INF 0x3f...原创 2022-03-18 23:41:23 · 324 阅读 · 0 评论 -
AcWing 321. 棋盘分割 (二维区间dp + 记忆化搜索)
这是一个典型的二维区间dp. 我们用 表示当前的切割的刀数为k时, 产生了一块左上角下标为右下角下标为的棋盘,其方差的最小值. 我们再考虑状态转移, 注意:考虑状态转移时,可以考虑这个状态是由什么状态转移而来,也可以考虑这个状态可以转移到什么状态. 在这道题,显然后者比较简单:. 其中 ...原创 2022-03-16 13:39:21 · 325 阅读 · 0 评论