首页 > 其他 > 详细

CF1375G

时间:2020-09-13 21:37:04      阅读:55      评论:0      收藏:0      [点我收藏+]

CF1375G

给定 \(n\) 个点的树,每次操作为选取 \(a,b,c\) 三个点,满足 \(a\)\(b\) 有边,\(b\)\(c\) 有边,然后执行如下:

  1. \(a\) 及其所有儿子与 \(c\) 连边。
  2. 删去 \(a\) 和其所有儿子的边。

求最小的操作次数使得原树存在度为 \(n-1\) 的点。

Solution

改成一次操作的定义为:

选择一个 \(a,b,c\),然后将 \(a\)\(c\) 合并成一个点 \(x\),并给 \(x\) 增加一个儿子。

假定 \(b\)\(a,c\) 祖先,不难发现所有点的深度都不会变。

如果 \(b\) 不为 \(a,c\) 祖先,可以发现所有点的深度 \(\mod 2\) 的值不会变!

对这张图进行二分图染色,发现每次操作实质为选定一个黑-白-黑/白-黑-白三元组,然后变成 白-黑-白/黑-白-黑 的形式。

所以操作次数的下界是 \(\min(A,B)-1\),其中 \(A\) 为黑点数,\(B\) 为白点数。

CF1375G

原文:https://www.cnblogs.com/Soulist/p/13662175.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!