CF786E ALT

题意

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\)子树中用并查集就好了

题外话

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

posted @ 2020-02-22 07:48  Grice  阅读(102)  评论(0编辑  收藏  举报