专栏文章
P8182 「EZEC-11」雪的魔法
P8182题解参与者 3已保存评论 2
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @mip4xcq3
- 此快照首次捕获于
- 2025/12/03 06:13 3 个月前
- 此快照最后确认于
- 2025/12/03 06:13 3 个月前
线性规划对偶,变成给每个位置赋 权,使得任意长度 区间和 ,然后最大化带权和。这个限制换句话说,就是任意距离 的相邻 之间要有恰好一个 。
把序列在相邻且距离 的 处劈开,则劈出来每一段里去掉 之后都是 交替的形式。通过手玩,或者直接注意到这就是 的情况,我们发现这样的一段的最大权值是 。
考虑这样劈出来的段长啥样:最优解里,第一段一定以序列开头为开头,最后一段一定以序列结尾为结尾,剩下的每相邻两段距离一定恰好是 。把所有除了第一段以外的的左端点取出来,则一个左端点的贡献可以推出来是 。
问题变为:在 选取若干个点,每个点有点权 ,选的任意两个点距离至少为 ,最大化点权和。容易写出 DP, 从 和 转移过来,复杂度 。
考虑建一张图, 向 和 连边,则它应该几乎是一张网格图:

(图片来自 P9040 洛谷题解)我们要在这样的图上多次询问两点最长路。这是可以分治做的。
具体地,我们每次选择网格较长的一边劈开,然后对于分界线上每个点,处理经过它的最短路。因为较短的边长是根号的,主定理一下可以发现总复杂度 。注意这里除了网格边以外还有 这样的斜着的边,这只会在我们第一次对行分治时有贡献,特殊处理一下即可。
相关推荐
评论
共 2 条评论,欢迎与作者交流。
正在加载评论...