[ABC233F] Swap and Sort
题目大意
给定一个排列 \(a\),有 \(m\) 次操作,你可以任意顺序的选择,每次交换两个数,构造一种方案使得其为 \((1, 2, ..., n)\)。
题目思路
首先这种题,常见套路就是建模。
然后我们把交换的两个数连边,那么现在就是对于一个点 \(x\),要把 \(x\) 移到 \(a_x\) 上(反过来,这样处理方案会好处理一些),就是把 \(x\) 到 \(a_x\) 的链拎出来,然后依次操作。
好了,现在我们想会不会有一个数移回到原位置后,又被移开了呢?完全有可能的,但是如果我们在遍历过程中,先遍历儿子结点,再遍历这个结点呢?那么就不会互相影响了,就做完了。

浙公网安备 33010602011771号