线性DP 背包 区形DP 树形DP 环形与后效性处理 状态压缩DP 倍增优化DP 数据结构优化DP 单调队列优化DP 斜率优化 四边形不等式 计数类DP 数位统计DP 总结与练习 ...
分类:
其他好文 时间:
2019-10-10 12:50:49
阅读次数:
79
对线性dp常见的分析方法是采用集合的方法,即把整个问题化为一个个集合的的递归关系,不必细分为一个个仔细地问题,简化算法复杂度。 对待这样的dp分析首先是,状态表示,包括集合表示和属性。集合表示通常是把问题化了若干个小类,用某个数据结构通常为数组表示。属性通常是指,集合表示的性质,有count,max ...
分类:
其他好文 时间:
2019-10-05 22:23:32
阅读次数:
116
问题描述 "LG5003" 题解 设 $mx[i][j][0/1]$代表当前位置、朝向的最大拐弯数,最小同理。 来源为左边和上边。 坑点:起点可能为 。 $\mathrm{Code}$ ...
分类:
其他好文 时间:
2019-10-04 00:03:36
阅读次数:
101
问题描述 "LG4158" 题解 设$opt[i][j][k]$代表到$(i,k)$刷了$j$次的方案数。 一开始DP顺序有点问题,调了很长时间。 务必考虑清楚DP顺序问题 $\mathrm{Code}$ cpp include using namespace std; template void ...
分类:
其他好文 时间:
2019-10-02 18:45:43
阅读次数:
67
题意: 就是魔法召唤技能,最少的符号数之类的。 思路: 线性dp题 记 dp[i][6] 为祈唤出第 i 个技能之后,身上三个法球的先后顺 序为 0 ~ 5 的状态的最少按键数。(就是一种技能的三个发球的排列总数为6) 转移就暴力枚举上一个技能的结尾状态,然后算一下有几个 法球是可以重复使用的,取个 ...
分类:
其他好文 时间:
2019-09-28 23:30:04
阅读次数:
124
很多问题往往会给出一个序列或者一个数表,让你对其进行划分,或者选出其中的某个最优子集。这一类问题往往适合使用线性DP。 线性DP是一种非常常见的DP。它往往以状态内的其中一个维度划分阶段。接下来,我将给出几个非常重要的转移方程。 最长上升(下降)子序列LIS 已知一个序列$A_i$。现在我希望从这个 ...
分类:
其他好文 时间:
2019-09-26 12:09:11
阅读次数:
85
问题描述 "TYVJ1071" 题解 暴力$\mathrm{DP}$ 首先,一个$O(n^3)$的解法: 设$opt_{i,j}$代表$a$的前$i$个和$b$的前$j$个的$\mathrm{LCIS}$. 显然有: 1.$a_i=b_j$ $$opt_{i,j}=opt_{i 1,j}$$ 2.$ ...
分类:
其他好文 时间:
2019-09-21 21:35:53
阅读次数:
84
这类题目要首先把模型建立起来,挑选一个好的状态能让dp方程简化很多 ...
分类:
其他好文 时间:
2019-09-13 15:36:08
阅读次数:
92
题目描述 有n 名同学要乘坐摆渡车从人大附中前往人民大学,第 i位同学在第 ti? 分钟去 等车。只有一辆摆渡车在工作,但摆渡车容量可以视为无限大。摆渡车从人大附中出发、 把车上的同学送到人民大学、再回到人大附中(去接其他同学),这样往返一趟总共花费m分钟(同学上下车时间忽略不计)。摆渡车要将所有同 ...
分类:
其他好文 时间:
2019-09-01 01:23:50
阅读次数:
83
题目:https://codeforces.com/problemset/problem/1051/D 题意:一个2行n列的矩形,上面有黑白块,然后问你怎么布置才能有k个连通块,问有多少种方案数 思路:其实就是一个矩阵,我们一次放一列 四种状态 黑 | 白 | 白 | 黑 白 | 黑 | 白 | 黑 ...
分类:
其他好文 时间:
2019-08-24 20:41:12
阅读次数:
70