dp总结1

dp真是个磨人的东西,那我就分多次总结吧

烧脑的dp

CF568E

第一个我愿意总结为基础模型的进阶使用

首先考虑普通的LIS的做法,就可以发现我们直接在普通点按照LIS的方法做就好了

发现LIS数组一定是递增的,所以可以双指针,这样枚举就只是双指针的值域了

奇怪的方式

AGC035D

将过程在dp中反向考虑不要太nb

首先发现状态好像不重叠呢,至于咋证的我也不知道,但是大概算一下应该是 (2^{n} imes n^{3}) 这个吧

但是这个反向操作是真的nb,状态的定义很巧妙

01trie贪心和dp的应用

Bitwise Xor

这个01贪心是真的可以,主要是排序有点烧脑,详细的看自己的题解吧

稀奇的状态方式

AT3950

这道题告诉我们通过推理可以将一道你想不到状态的dp转化为可以做的状态

首先是要知道贪心的思路是啥

就是考虑01的相互影响和我们想要的答案的关系

我们显然是想要多的1

所以001我们盼望再来一个1,110盼望再来两个1

反正咋的状态都只要4个(两个1和两个0)就可以表示完,其他的我们一定可以贪心过去

某种意义上这就是dp套了一个正确的贪心

笛卡尔树的性质

P3592

笛卡尔树一般都是按照val和下标来建立的

所以对于dp一般都有在val处有贡献这种性质

例如这道题就是,具体看题解吧

原文地址:https://www.cnblogs.com/zzqdeco/p/13113530.html