摘要: 题意:给定两棵树 $S$ 和 $T$,$n \leq 5 \times 10^3$,判断 $S$ 能否通过特定操作与 $T$ 同构,若能则构造方案。操作要求选择点 $u$ 和点 $v$ 满足 $2 \mid dis(u, v)$,以 $u, v$ 路径上任意一点为根交换子树 $u, v$,操作次数不能超过 $2n$。思路:先分析操作性质,按深度奇偶对树节点黑白染色,操作只能在同色点对间进行且操作后点度数不变,所以 $S$ 和 $T$ 同色同度数点数量相同是存在方案的必要条件,且该条件也是充要的。构造方案时,先将 $S$ 和 $T$ 中相同颜色相同度数的点配对。以 $1$ 为根对 $S$ 操作,对每个点,按 $T$ 从深度浅到深的顺序,若当前点有失散儿子和假儿子,且假儿子不是失散儿子的祖先,直接交换子树;若假儿子是失散儿子的祖先且失散儿子不是叶子,可通过交换失散儿子的一个儿子和当前点来调整,如同反向 $(v, u)$ 的链;若失散儿子是叶子,可先不管,因为非叶子节点找到正确父亲后叶子自然正确。时间复杂度 $O(n^2)$,操作次数 $< n$ 。 阅读全文
posted @ 2025-09-27 16:03 wing_heart 阅读(24) 评论(4) 推荐(1)