题解:CF2152H2 Victorious Coloring (Hard Version)
先看 H1
H1 告诉我们两件事情:只需要考虑染色方案是连通块;对于局部子问题最优化是正确的。
我们继续挖掘性质。先不考虑边权相等。若存在边权为
证明:若
所以考虑建 kruskal 最小生成树,一个可能最小的连通块是生成树的一棵子树,我们对子树内贪心。
设
考虑转移,对于叶子有
然后就是一些 dirty work:发现
对于
用优先队列维护凸包,启发式合并。询问时直接二分即可。时间复杂度
先看 H1
H1 告诉我们两件事情:只需要考虑染色方案是连通块;对于局部子问题最优化是正确的。
我们继续挖掘性质。先不考虑边权相等。若存在边权为
证明:若
所以考虑建 kruskal 最小生成树,一个可能最小的连通块是生成树的一棵子树,我们对子树内贪心。
设
考虑转移,对于叶子有
然后就是一些 dirty work:发现
对于
用优先队列维护凸包,启发式合并。询问时直接二分即可。时间复杂度