【题解】Solution Set - NOIP2024集训Day22 DP常⻅模型 1「序列」& 2「背包」
【题解】Solution Set - NOIP2024集训Day22 DP常⻅模型 1「序列」& 2「背包」
https://www.becoder.com.cn/contest/5507
「SCOI2003」字符串折叠
考虑区间 dp。转移的时候,对于当前状态(区间),枚举左边的循环节长度,用 kmp 求出最长循环距离,然后划分子问题。
如果每次钦定左边取到最长的循环长度,其实算强行加上了一个错误的贪心(虽然有 90pts
我们划分子问题的时候就直接划分就行了,最后看整体能不能压缩就行了。
「ABC221G」Jumping sequence
这道题难做的原因是,横纵坐标在不同的走法下地位不一样,这导致我们无法分开处理。
我们考虑把整个坐标系旋转
这样往四个方向走的时候,横纵坐标都会变化
剩下的简单转化可以参见:这篇题解。
「BZOJ1190 HNOI2007」梦幻岛宝珠
就是 0-1 背包,但是背包容量为
假如所有的
所以,我们考虑把
现在考虑背包的合并。
考虑把
(没想出来。
https://www.luogu.com.cn/article/nnsuyx54
Hummmmm,似乎也算是对
为了合并,我们考虑重新拿出一个 dp:
有转移:
「CF1866E」Elevators of Tamem
有点奇怪,只有三台电梯。
我们要设计的状态应该跟上一次这台电梯使用时间有关,因为在此期间的
(md,一开始以为状态数是
这样我们就有了一个
(调了好久……
现在考虑优化。
实际上,一定是有
「CF500F」New Year Shopping
题目的意思就是可以在一个区间都加入一个物品,查询单点的 0-1 背包。
一个线段树分治的做法。
把每个物品的区间分成线段树上的
把每个询问挂在叶子节点上。
一个询问可以用的物品就是其到根路径上的所有物品,我们维护以下这些物品,到叶子节点的时候 0-1 背包就行。
时间复杂度
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下