专栏文章
题解:CF2152H2 Victorious Coloring (Hard Version)
CF2152H2题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @minnjpv5
- 此快照首次捕获于
- 2025/12/02 05:19 3 个月前
- 此快照最后确认于
- 2025/12/02 05:19 3 个月前
H1 告诉我们两件事情:只需要考虑染色方案是连通块;对于局部子问题最优化是正确的。
我们继续挖掘性质。先不考虑边权相等。若存在边权为 的边在连通块 内部,存在边权为 的边在连通块 边缘,那么有 。
证明:若 ,则将连通块按照 这条边划分,选择与 这条边不交的部分,变化量 ,所以这个染色方案一定不是最优。
所以考虑建 kruskal 最小生成树,一个可能最小的连通块是生成树的一棵子树,我们对子树内贪心。
设 表示 子树在原树上的领域边权和, 表示当 时,只考虑 子树内染色方案的 最小值。
考虑转移,对于叶子有 ,对于非叶子有 ,其中 表示 的左右儿子。
然后就是一些 dirty work:发现 是凸的,证明可以归纳。考虑维护凸包的拐点和斜率 变化量(人话就是差分两次),这样可以在做 的时候比较简单合并。
对于 部分,这相当于凸包和直线求 ,我们发现这条直线斜率是 ,而凸包的斜率为整数且 ,所以被这个直线覆盖的点构成一段前缀,所以覆盖的时候直接暴力在前缀删点即可。
用优先队列维护凸包,启发式合并。询问时直接二分即可。时间复杂度 。
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...