Swaps
题解 AtCoder wtf22_day1_b【Non-Overlapping Swaps】
给定一个排列,要求交换最多 $n-1$ 对元素,使得这个排列变成 [1,2,...,n] 的有序排列。
当然没有那么简单,对于交换还是有限制的,对于相邻的两次交换,不妨叫做 $(l_i, r_i)$ 和 $(l_{i+1}, r_{i+1})$,必须满足**这两个交换所对应的区间,没有交集**,即... ......
CodeForces 1863G Swaps
洛谷传送门 CF 传送门 看到 \(a_{a_i}\) 和 \(a_i \in [1, n]\),果断连边 \(i \to a_i\),得到内向基环森林。 那么每次相当于把 \(a_i\) 变成自环,连边 \(i \to a_{a_i}\)。 但是每次操作都改变图的形态很不好办,考虑打标记。 每次 ......
「题解」Codeforces 1863G Swaps
看成内向基环森林,操作 $u\to v$ 相当于让 $u$ 连向 $v$ 所连的点,$v$ 变成自环。发现如果一个点 $v$ 变成了自环,那么操作任意一个 $u\to v$ 都没有用。 从简单的情形出发,对于一个内向树(或者说环大小为 $1$ 的内向基环树),每次操作 $x\to fa_x$ 时,相 ......