UOJ #823. 【UR #26】铁轨回收
拜谢 zaky!
首先考虑 的部分分,我们考虑采用一种“提前”的 dp 方法。我们设 表示从后往前考虑到第 个,仍有 个 需要变成 的方案数。每次转移的时候枚举当前这个值最终是什么,并选择 中的一个数转移过去。
进一步的,我们可以得到一个普适的 dp:设 表示从后往前到第 个, 中序列为 ,其中 表示仍有 个 需要被减少到至少 以下。这里需要将至少容斥成恰好,也即如果枚举了 的最终值是 ,需要用 最终至少是 的方案数减去 最终至少是 的方案数,这样的复杂度是 级别的。
这样子并不够优。可以注意到的是,刚开始 内所有数的和是 级别的,如果能让过程中都保持这个状态,那么复杂度就是可以接受的。会使 内所有数变大的情况是某个数顶到了 的上界,我们考虑单独处理。我们可以再进行一个容斥,将 顶到上界用 随意连减去 不顶到上界的情况。为此,我们重设 dp 状态为 ,其中 表示后面有 个数是可以随意连的。转移需要分类讨论一下每个数是连向非随意连还是随意连。如果连向非随意连,那么 内数的总和会至少减去 ,否则当前数也可以看作随意连,总和不变。
状态数是 的,其中 表示 的划分数,转移数是 的,预处理划分数之间的转移以后就可以做到 。
不要写记搜,慢死了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
2021-10-30 JOISC 2014