随笔分类 - dp / 背包问题
摘要:首先对于一个边双连通分量,它一定有一个环,将这个无向环换成有向环,我们就构造出了一种可以使边双连通分量内任意两点都可互达的情况。 那么问题又一次来到了树的情况。注意力惊人的注意到最优策略一定是一堆点到一个点,一个点再到一堆点。直接简单树形 \(dp\) 结合简单 \(01\) 背包即可。 时间复杂度
阅读全文
摘要:容易发现一定能构造出一种正确答案,满足先横着走到头再向下走,或者先向下走再横着走到头是最长路。 那么可以想到枚举两头,背包中间的 \(O(n^4A)\) 做法。 我们可以继续注意力惊人的注意到左上和右下角一定是最小值和次小值,这样时间复杂度就骤减到 \(O(n^2V)\) 了。 #include<b
阅读全文
摘要:我们考虑先将选的数之和 \(sum\) 转化到一定范围内,再进行背包 \(dp\),这样就可以减少时间空间复杂度了。 其他的都是简单多重背包,时间复杂度 \(O(m^3\log^2m)\),假如用单调队列写应该就是 \(O(m^3)\) 了。 #include<bits/stdc++.h> #def
阅读全文