一个早期DP专题

区间DP

A.Sue的小球

这个题和关路灯基本上是一样的,考虑正难则反,求解最小损耗,然后就是关路灯。考虑贡献提前计算,把每个球下落的贡献拆开来算,状态就是\(\large f_{i,j,0/1}\)表示现在在[i,j]的左/右端点,此时的最小消耗。转移是容易的。

B.CF1922F

这个题有点厉害啊。
首先我们考虑一个结论:最优解的操作区间一定不会有相交且不包含的情况出现。证明的话,就是把连续段缩成一个点,然后如果出现了这种情况,等于是我白白多加了一个点,一定不优。
这个DP状态的设定比较高级,你分析转移过程,就是在把整个区间都改成k之前,要保证整个区间里没有k出现。
所以设\(\large f_{i,j,k,0/1}\)为把[i,j]全改成不是/是k的所需最小次数。
转移方程不是很难想:
1.对于不是的一类,就是不对大区间操作(枚举断点),或者对大区间操作(选一个不是k的数l,\(\large f_{i,j,l,0} + 1\))。
2.对于是的一类,不对大区间操作的同理,否则就是\(\large f_{i,j,k,0} + 1\)
3.发现不是的一类的第二种转移会有环,但是一定是只有第一种转移得出dp值最小的才会转移别人,所以先跑一遍第一种即可。

考虑分析复杂度,就是\(\large \sum\limits_{i=1}^{t}n_i^4\),发现\(a^4 + b^4 \le (a+b)^4\),所以这个式子在n是5个100时取到最大值,最大是5e8,三秒肯定能过。

树形DP

D.ABC233G

换根DP使用的情况一般是要把对根节点做的事对所有节点都做一遍。
所以考虑二分图最大匹配=n-二分图最大独立集,这是一个经典结论,用最小点覆盖证明即可。
我们求解最大独立集即可,然后换根就是经典up and down,设一个子树外的即可。
我们最后发现,如果自己被删掉,最大独立集大小不变,那么不满足这个性质的点的个数就是答案。

posted @ 2025-08-16 10:12  The_Wandering_Earth  阅读(9)  评论(0)    收藏  举报
/