P10197 [USACO24FEB] Minimum Sum of Maximums P
这种东西我们考虑连续段 DP,然后用一个
这个题不弱于波浪吧。
错误的,连续段DP我们并不知道在相应点之间个数
所以我们再猜猜复杂度
先梳理梳理性质:
-
显然
之间的数是有序的,可以考虑连续三个数的情况一定是有序最优。 -
考虑每一段的值有什么特征,对于两段,如果它们只是值域相交,仅相交,那么我们将其交换后使其不交应该是最优的
一段是
,一段是 ,那么就是交换后是
去掉相同项做差有下面减去上面是
因为
所以一定最优也就是值域区间缩小了答案肯定更小
-
既然不交了,那么是不是可以不包含?MD这显然不行,如果行的话就一伞兵题了。
考虑一个 DP,设
显然答案是
考虑转移:
-
直接拼,显然有
, -
包含关系,枚举一个
,然后枚举外层包起来, ,这一步显然死了
转移系数还需要认真处理,第二步从何优化
我们可以发现,即使现在没有用完,那么划完之后钦定左边一定用完了是可以的,
怎么算?
更改一下状态定义:
那么转移的时候就简单了,可以从划分值域的角度来说,如果
第二步其实就变成了枚举最外层的区间,并且钦定
我们会发现贡献很难计算,但是其实可以发现在不考虑特殊点以及特殊点的相邻点的代价计算时,其实本质相同,用一个常用 trick
简化边界可以强行钦定
说细一点就是:
这个
边界是
对于边界处理,也就是首段尾端,可以手动插入两个点权极大的哨兵
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!