2023年10月27日

动态规划合集

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

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

计数dp

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

posted @ 2023-10-27 18:07 star_road_xyz 阅读(41) 评论(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 阅读(69) 评论(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 阅读(47) 评论(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 阅读(28) 评论(0) 推荐(0) 编辑

树形dp

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

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

DP技巧与DP杂题

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

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

导航