[置顶] 动态规划合集

摘要: 动态规划笔记目录 八种常见动态规划题型 序列dp 树形dp 背包dp 区间dp 期望dp 状态压缩dp 数位dp 计数dp 动态规划优化合集 DP技巧与DP杂题 数据结构优化dp 矩阵快速幂优化dp 决策单调性优化dp 斜率优化dp 阅读全文

posted @ 2023-10-27 18:32 star_road_xyz 阅读(8) 评论(0) 推荐(0) 编辑

2023年10月28日

状态压缩dp

摘要: 相关技巧 枚举子集:如果一个集合状态 \(S\) 由其所有子集 \(S0\subsetneq S\) 转移得到,这样转移的时间复杂度为 \(\sum\limits_{i = 0} ^ n\dbinom n i 2 ^ i=3 ^ n\) for(int S0 = S; S0; S0 = (S0 - 阅读全文

posted @ 2023-10-28 15:38 star_road_xyz 阅读(17) 评论(0) 推荐(0) 编辑

2023年10月27日

计数dp

摘要: 错位排列计数 (组合意义dp) 题目 给定长度为 \(n\) 的排列,求解其错位排列数 题解 设 \(D_n\) 表示长度为 \(n\) 的排列的错排数,考虑我们已经知道了前 \(n-1\) 个错排数,那么对新加入的这第 \(n\) 个数进行分类讨论 直接与前面的数交换,有 \((n-1)\time 阅读全文

posted @ 2023-10-27 18:07 star_road_xyz 阅读(28) 评论(0) 推荐(0) 编辑

矩阵快速幂优化dp

摘要: 寻址连续优化 for(int i = 1; i <= n; i++) for(int k = 1; k <= n; k++) if(a.a[i][k]) for(int j = 1; j <= n; j++) c.a[i][j] = (c.a[i][j] + 1ll * a.a[i][k] * b. 阅读全文

posted @ 2023-10-27 18:06 star_road_xyz 阅读(59) 评论(0) 推荐(0) 编辑

数位dp

摘要: 数位dp的一般套路 问题形式 给你一个条件 \(A\) ,然后询问值大小在 \([L,R]\) 中有多少满足条件的数 这个问题暴力去做一般是 \(\mathcal{O}(R)\) 的时间复杂度,但是通过数位dp我们可以把这个东西优化到 \(\mathcal{O}(\log_{10}R)\) 求解过程 阅读全文

posted @ 2023-10-27 18:03 star_road_xyz 阅读(35) 评论(0) 推荐(0) 编辑

序列dp

摘要: LCS问题 题目1 给定 \(A,B\) 两个排列,求它们的 \(\text{LCS}\) 题解1 两个序列都是排列,那么可以考虑建立映射关系跑LIS 题目2 给定 \(A,B\) 两个序列,求它们的 \(\text{LCS}\) 题解2 就是个简单的多序列dp 设 \(f[i][j]\) 表示考虑 阅读全文

posted @ 2023-10-27 18:00 star_road_xyz 阅读(24) 评论(0) 推荐(0) 编辑

树形dp

摘要: P3174 [HAOI2009] 毛毛虫 (树的直径变式) 题目 对于一棵 \(N\) \((N \le 3\times 10^5)\) 个点的树,我们可以将某条链和与该链相连的边抽出来,看上去就象成一个毛毛虫。 求点数最多的毛毛虫 题解 本题与树的直径的求法非常类似 设 \(f_u\) 表示以 \ 阅读全文

posted @ 2023-10-27 17:59 star_road_xyz 阅读(12) 评论(0) 推荐(0) 编辑

DP技巧与DP杂题

摘要: DP常用技巧 增加维数 交换答案与状态 可行解转最优解 删掉本质相同的状态 对部分状态\(dp\) 遇到转移顺序的困难,考虑记忆化搜索 遇到转移细节过多的问题,考虑从 \(i\rightarrow i+1\) 而不是 \(i-1\rightarrow i\) 考虑状态时,先把需要记下来的都记一遍,再 阅读全文

posted @ 2023-10-27 17:58 star_road_xyz 阅读(18) 评论(0) 推荐(0) 编辑

2023年9月11日

强连通分量

摘要: 强连通图判定 从一个点出发,可以遍历整张图,再将所有的边反向,从同一点出发,可以遍历整张图,则该图是强连通图 Tarjan求有向图强连通分量 \(\text{dfn[u]}\) 表示点 \(u\) 的dfs序,\(\text{low[u]}\) 表示点 \(u\) 可以走到的dfs序最小的点 我们在 阅读全文

posted @ 2023-09-11 19:55 star_road_xyz 阅读(3) 评论(0) 推荐(0) 编辑

2023年7月24日

斜率优化dp

摘要: ### 斜率优化简介 **问题引入** 给定一个长度为 $n$ 的序列 $a[i]$ ,连续若干个数可以分为一组,将这些数分成若干组,每一组的代价为组内元素和的平方,要求最小化代价 $n\le 2\times 10^5$ **朴素算法** 设 $f[i]$ 表示将前 $i$ 个数分组之后的最小代价, 阅读全文

posted @ 2023-07-24 19:59 star_road_xyz 阅读(13) 评论(0) 推荐(0) 编辑

导航