其他分享
首页 > 其他分享> > 【一些有趣的题】

【一些有趣的题】

作者:互联网

题目1

题意:
给定一个长度为 \(n\) 的排列 \(p\),以及 \(m\) 个对 \((x_i, y_i)\),每次选择一个 \(pair\) 交换 \(p_{x_i}\) 和 \(p_{y_i}\) ,可以进行任意多次选择和交换,问获得最多 \(p_i=i\) 的数量。
数据范围:
\(1\leq n, m\leq 10^5, 1\leq x_i,y_i\leq n\)

题解:
所有可以直接或间接交换到的 \(pair\) 构成一个图,我们可以将其看成一个树。
每次将可以树上度为 \(1\) 的点置换成想要的值,然后删除这个点,直到不存在点。如此就可以将所有的点调整到对应的位置,只要保证出现在树中的点都出现在树上对应位置即可,如果树中的点没有对应的位置,那么可以任意放。

标签:可以,位置,交换,leq,pair,一些,有趣,对应
来源: https://www.cnblogs.com/solego/p/16450522.html