dp 专题 1
被 dp 打爆了无数次,尝试抢救一下。
大部分题来自 cf 2800+ tag=dp
2022.6.30
CF739E Gosha is hunting
先冲了个 的 dp 没跑过去,嘻嘻。思考了一会发现可以费用流莽掉。
在题解的提醒下想到了 wqs 二分,考虑把 dp 的第三维带上权消掉,并且满足一个单调关系。只需要二分把数量卡进题目范围即可。那就做完了。
CF724E Goods transportation
编了个从小到大硬点的贪心,但是没有考虑到货物可以反复传递,寄了。
最正确的做法显然是直接上网络流,但是你光建图就寄了。
考虑最大流转化成最小割,设 表示前 个点,有 个点和 相邻的边没被割,就做完了。
CF671D Roads in Yusland
设 表示覆盖了 的子树,且有一条链延伸到了 的最小代价。
显然 。对于路径底的 ,。
你发现这玩意可以线段树启发式合并搞定,就做完了。
CF1372E Omkar and Last Floor
从前往后 dp 假了 /kx。
考虑区间 dp,只考虑左右端点在 之间的线段。因为是平方,所以硬点一个 ,它们都要在 处放个点,剩下的就是 。非常的合理。
CF512D Fox And Travelling
注意到环上的点显然不会删去,所以把所有环扬了,变成一个森林。
这时有两种情况,第一种是与环相连,那操作顺序是定向的,在树上做一个类似背包的 dp 即可。
第二种是这个连通块本身就是一颗树。那么把它的每个节点都看作根,做一次上面的 dp。这时注意到大小为 的方案恰好被算了 次,因为不在方案内的点都能统计到这个方案。特别的是大小为 的方案,上面的 dp 相当于硬点了最后一个拿的位置,就不用管了。
把所有连通块的答案卷起来就好了。
CF1129D Isolation
这可能是我今天见到的最牛逼的题了。显然 暴力大家都会。瓶颈是计算一个带权的 ,大概是维护 之间出现一次的数的一些信息。
尝试用数据结构搞掉,发现需要支持区间 +/- 某些数,并且对 的数带权求和。正常做法是分块+BIT,但是这题因为只需要加减 1,可以直接上桶,块上记个 tag 就可以了。
俺的 ds 技巧怎么退步这么多呢 /qd。
2022.7.1
CF559E Gerald and Path
先离散化一波,左端点从左到右排序,大力设 表示考虑了前 条线段,最右覆盖在 的最大价值。随便转移。
CF1279F New Year and Handle Change
不是,这都能 wqs 二分的吗。wqs 二分是什么勾八东西啊 /fn。
毛估估一下,随着单次费用上升,用的次数会越来越少,然后它就凸了(?)
套板子就完事了。注意二分完之后要在做一遍答案,防止出现神必情况。
CF755G PolandBall and Many Other Balls
毫无 poly 技巧.jpeg。
显然直接推出 dp 式子,发现次数不大,手动解一下特征方程,然后就做完了。
题解区里 Karry5307(卡老师 /se/se/se/se)给出了另外一个做法,考虑合并长为 和 的两段,推一推式子,搞出 的方法,然后可以倍增做。我大受震撼。
qwaszx 的递推做法根本看不懂,爬了。
CF1648D Serious Business
先特判只经过一个区间的。
对于经过若干个区间的,设最后一个区间是 ,路径一定是现在第一行走,然后走到第二行,然后 rush 到 。动态求出到第二行第 列的最大价值 ,这显然总能搞出来。
考虑枚举最后一个区间 ,贡献就是 ,这东西大力线段树 / ST 表维护就行了。
2022.7.2
CF1383E Strange Operation
考虑一个串什么时候是最优匹配,发现一个目标串的 0 在原串里一定是连续的。
大力设 表示最优匹配到 ,结尾是 的方案数。发现不好转移。设 表示在第 位后面加上 会匹配到哪个点。发现 就是最近的 。 比较复杂,如果它是一段 的末尾,就是下一段长度更长的连续 的对应位置,否则就是下一个 。
,就做完了。
LOJ507「LibreOJ NOI Round #1」接竹竿]
推推式子,只跟相同颜色的有关。所以每个颜色维护一个最大值就做完了。(乱入)。
2022.7.4
CF536D Tavas in Kansas
发现 不大,就搞一个 的表,每次只会取上面一行或者左边一列。随便转移。
CF1322D Reality Show
毛估估一下,反着打是一样的。有了 NOIP2021T2 的教训,从大往小打要多记个状态,不优。设 表示最后一个选的是 ,当前场上二进制集合是 的最大收益。反正数据范围小,转移根据 和 的大小关系随便搞搞就行了。
CF1063F String Journey
序列翻转,显然长度不会超过 。 表示第 个结尾长度为 是否合法,随便转移。
还有一种方法是设 表示第 位结尾最长的合法串。发现 ,每次减+判断,看起来显然可以在 SA 上二分搞定。
太困了已经神志不清了。润。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端