dp总结1
dp真是个磨人的东西,那我就分多次总结吧
烧脑的dp
CF568E
第一个我愿意总结为基础模型的进阶使用
首先考虑普通的LIS的做法,就可以发现我们直接在普通点按照LIS的方法做就好了
发现LIS数组一定是递增的,所以可以双指针,这样枚举就只是双指针的值域了
奇怪的方式
AGC035D
将过程在dp中反向考虑不要太nb
首先发现状态好像不重叠呢,至于咋证的我也不知道,但是大概算一下应该是 \(2^{n} \times n^{3}\) 这个吧
但是这个反向操作是真的nb,状态的定义很巧妙
01trie贪心和dp的应用
Bitwise Xor
这个01贪心是真的可以,主要是排序有点烧脑,详细的看自己的题解吧
稀奇的状态方式
AT3950
这道题告诉我们通过推理可以将一道你想不到状态的dp转化为可以做的状态
首先是要知道贪心的思路是啥
就是考虑01的相互影响和我们想要的答案的关系
我们显然是想要多的1
所以001我们盼望再来一个1,110盼望再来两个1
反正咋的状态都只要4个(两个1和两个0)就可以表示完,其他的我们一定可以贪心过去
某种意义上这就是dp套了一个正确的贪心
笛卡尔树的性质
P3592
笛卡尔树一般都是按照val和下标来建立的
所以对于dp一般都有在val处有贡献这种性质
例如这道题就是,具体看题解吧