Part.1 有关本题
本蒟蒻想起这道巧妙 又毒瘤 的题,到处搜寻提交窗口。好不容易找到窗口,有花了 3 h 3h 3h 的时间调题。
本蒟蒻为了悲剧不再发生,于是出了这道题,有写下了这篇题解以供后人。
以下的题解默认以阅读过原题。
Part.2 前置芝士
Part.2-1 DFS序列
DFS序列就是先序遍历的别称,一课子树DFS序列连续
Part.3 题意
言归正传,开始讲题。首先我们说思路,题面中说有一只小羊,它拥有超能力改变某棵二叉树一个节点的父亲。它问最先序遍历最小的字典序。
Part.4 题解
Part.4-1 n^3 暴力
我们枚举一个节点 u u u,新父亲 F F F,将原父亲 f f f 连向 u u u 的边去掉,将 F F F 的一个儿子变为 u u u 即可。更改完毕后对它跑DFS生成答案,取最小字典序。
Part.4-2 转移思路
使用如上所述的DFS序列解题。
红是原来的DFS序列,黄操作可以转换为将 [ 8 , 10 ] [8,10] [8,10] 区间( 8 8 8 的子树)前移至 6 6 6 后,绿操作将 [ 9 , 9 ] [9,9] [9,9] 区间后置到 11 11 11 后,紫操作强调了可以放在最后。
但是可以发现,自己和自己的左孩子之间不可以插入区间。
Part.4-4 贪心
考虑前移,那么我们假设有一段区间移动到了 i i i 位置后,那么原来后面的是 i + 1 i+1 i+1,现在变成了某位置 j j j。我们贪心让 j j