计数交换

详细阐述一下蓝书的做法

首先,我们创造\(n\)个点,每个点有一个权值\(p_i\),也有一个编号

蓝书的连边就是对每一个点,从这个点出发连一条有向边到编号为这个点权值的点

比如书上举的那个例子,编号分别为\(1,2,3,4,5,6\),权值分别为\(2,4,6,1,5,3\)

这样这个图肯定是由若干个环组成的

然后这个引理是怎么想到的:

我们考虑任意一次交换(此时的交换相当于在交换两个点的权值),如果这两个点不在同一个环里面,想一下就会发现整个图的环的个数就会减少一,如果两个点在同一个环里面,整个图的环的个数就会增加一,所以一次操作要么让环的个数增加一,要么让环的个数减少一

因此在满足\(m\)最小的情况下,我们每次的交换操作都是在同一个环里进行的(根据我们刚刚的分析,我们可以找到一个\(m\)的下界,而图中只要存在不是自环的环就可以一直这么拆,每次拆都会让环的个数加一)

然后我们再来考虑同一个环里面交换两个点的结果是什么,这个见蓝书就好了,手搓几下就可以想到引理了

这也是为什么后面的操作都是默认在同一个环里面进行操作的原因

这道题目的拓展Ans && Conclusion

posted @ 2024-02-16 16:28  最爱丁珰  阅读(2)  评论(0编辑  收藏  举报