Loading

[ABC233F] Swap and Sort

题目大意

给定一个排列 \(a\),有 \(m\) 次操作,你可以任意顺序的选择,每次交换两个数,构造一种方案使得其为 \((1, 2, ..., n)\)

题目思路

首先这种题,常见套路就是建模。

然后我们把交换的两个数连边,那么现在就是对于一个点 \(x\),要把 \(x\) 移到 \(a_x\) 上(反过来,这样处理方案会好处理一些),就是把 \(x\)\(a_x\) 的链拎出来,然后依次操作。

好了,现在我们想会不会有一个数移回到原位置后,又被移开了呢?完全有可能的,但是如果我们在遍历过程中,先遍历儿子结点,再遍历这个结点呢?那么就不会互相影响了,就做完了。

posted @ 2024-04-18 14:14  Alexande  阅读(16)  评论(0)    收藏  举报