码迷,mamicode.com
首页 > 其他好文 > 详细

CF786E ALT

时间:2020-02-22 09:31:11      阅读:108      评论:0      收藏:0      [点我收藏+]

标签:动态   exists   problems   line   题意   strong   替换   def   ORC   

题意

cf

做法

定义\(E1\)\(T1\)的边集,\(E2\)\(T2\)的边集,\(U=E1\cap E2\)
结论\(\forall e\in E1-U,\exists f\in E2-U\),使得\(E1-e+f,E2+e-f\)均为树

比较显然,不赘述

进而有个很强的推论:答案为\(n-1\),也就是能形成完备匹配

证明:
每次将树替换为\((T1,T2+e-f)\),因为每次我们都是用不属于\(U\)的边,同时\(T1\)是满足条件的,所以可以归纳下去

\(T2\)可以用一棵动态树维护,对于任意\(e\),在子树上二分找到\(f\)即可

还有一种常数更小的办法,因为结论中是对称的,在\(T2\)中找到一端为叶子节点的\(f\),这时候判断是否在\(T2\)子树中用并查集就好了

题外话

单纯看这题题面是没有什么想法的,好在样例良心,观察样例,大胆猜结论

CF786E ALT

标签:动态   exists   problems   line   题意   strong   替换   def   ORC   

原文地址:https://www.cnblogs.com/Grice/p/12343870.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!