DP 杂题选做
部分详见:
概率期望 DP 学习笔记
树形 DP 学习笔记
其余题就不具体分类了。
P1220 关路灯
题解说这是区间 DP 经典题,但我以前居然没听说过,这下尴尬了。
设 表示关掉区间 所有灯,人在点 消耗的最少功率。
那么
P2466 [SDOI2008] Sue 的小球
做完上面那题这题就很好办了。
这题满足关系式 ,把功率换成速度,那这题就是求最小的价值乘移动距离的值。
于是就做完了(?
P2501 [HAOI2006]数字序列
第一问正难则反。考虑 均被保留,则需满足 。移项,得 。设 ,那么 。
即最长不下降子序列。
第二问根据贪心调整,必然可以使要调整的区间 最后左边一部分与 连续,右边一部分与 连续。
感性证明一下:对于一个夹在两边之间的区间,设需要向上调整的点数为 ,向下的为 。那么如果 ,把它向左边对齐显然是更优的;否则向右边对齐一定不劣。
保证数据随机,那么枚举每个 的点 (要判合法),并从 到 枚举 ,那它的复杂度不知道。O(能过)?
插播一条:
求最长不下降子序列
为啥我不会这个啊(雾
维护数组 表示满足 且 最小的 。
新加入一个 时,若 ,直接把 插到 最后面。
否则根据 数组的单调性,二分找到第一个 把 放到 的位置上。
哦好像 数组直接存值比存下标简单。算了不管了(
P5289 [十二省联考 2019] 皮配
什么神仙题啊。虽然好像确实只考了背包。 啥时候会了啥时候填坑吧/youl
P4363 [九省联考 2018] 一双木棋 chess
轮廓线 DP。设轮廓线上横线为 ,竖线为 。那么一个状态就可以用长度为 的二进制数表示。
至于转移,记搜时记录当前操作者并倒着转移即可。为啥一个 dfs 调 1.5h 啊。啥时候能学会 dfs 啊/kk
P4516 [JSOI2018] 潜入行动
无比熟悉。
终究没逃过写这个代码的命运。
注意循环的上下界,否则复杂度很容易写假。
P2605 [ZJOI2010]基站选址
线段树优化 dp。水黑好评ww
朴素 dp 设 表示前 个村庄,建了 个通讯站时 的最少费用。显然可以把第二维滚掉,变成 。
然后考虑点对答案的贡献,设 表示能覆盖点 最左/最右的位置。那么当循环到 时, 对 均有 的贡献。
那么用线段树维护 ,支持区间加法。每次循环到下个 时,重构整棵线段树。
CF908G New Year and Original Order
盲猜一波一会讲题会匹配到这题(
upd: 真的匹配到了
直接暴力数位 dp 的复杂度是 ,显然过不去。
因为把数按照每个数位排序,那么任何一个排序后的数可以表示成一堆 相加的形式。
比如把 拆开就是 。
观察到数 对答案的贡献只与 有几个数大于等于 i 有关。
故设 表示填了前 位,有 个数大于等于当前的 ,最高位是否有限制。
从 1 到 9 枚举 分别数位 dp 统计贡献即可。
本文来自博客园,作者:樱雪喵,转载请注明原文链接:https://www.cnblogs.com/ying-xue/p/16982444.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!