最简单的一届 WC。
P10143 [WC2024] 代码堵塞
拆贡献,考虑 选 还是 :
- 如果 选 ,那么它前面选 的加上它不超过 。
- 如果 选 ,那么它后面选 的加上它和它前面的所有数不超过 。
随便背包可以做到 。
P10144 [WC/CTS2024] 水镜
先考虑如何在 确定的时候如何判断合法,以下默认 。
注意到 的两个取值必有一个不小于 ,且另一个不大于 。我们不妨设 ,那么必然是一个前缀取 ,一个后缀取 。则合法当且仅当 单峰,即 。
我们只关心相邻两个位置的大小关系,而两条折线 的交点只有一个,所以相邻数的大小关系将 切分成 个本质不同的段。
算法一: 可以得到平方做法:将小于号看成 ,大于号看成 。我们的目标是对所有左端点 求出最远的右端点 。每次找到所有 连续段 ,对所有 执行 。
考虑我们每次翻转一个 只会影响其周围的 个连续段,所以修改后对这些连续段单独 chkmax 即可,复杂度 。
有关 的情况,在中间插入 并钦定大小关系始终不变即可。
算法二: 可以将条件转化为不存在“谷”,即 的结构。讨论可以得到一个有关 的范围的限制,判断范围非空即可。利用带删双指针(类似双栈模拟队列)可以做到 。
P10145 [WC/CTS2024] 线段树
似乎是复制粘贴,所以大家看原文就好了
考虑怎么判断合法。将原问题抽象成图论问题,一个区间 已知看做 和 连一条双向边,则 能被唯一确定当且仅当 和 联通。证明即考虑已知区间 相当于知道 的值,其中 为 的和。这样构建出来的图是平面图,边不会交叉。
设计 DP 状态 表示节点 的左端点和右端点联通, 表示 的左端点最远能到达的结点为 ,转移方程:
第四类转移需要注意 区间内的所有点都不与区间外的点联通,所以所有区间的两个端点要么在 内部,要么都在 外部。换句话来说,包含 的区间集相等。xor-hashing 刻画。
那么 表示最远点的等价类为 ,线段树合并维护,复杂度 。
https://www.luogu.com.cn/record/146497898
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】