👩💻 Join our community of thousands of amazing developers!
var meting_api='https://meting.yany.ml/api?server=:server&type=:type&id=:id&r=:r'765.情侣牵手题目描述: $n$ 对情侣坐在连续的 $2n$ 个座位上,人和座位由一个整数数组 $row$ 表示,其中 $row[i]$ 是坐在第 $i$ 个座位上的人的 $ID$ 。情侣们按顺序编号,第一对是 $(0, 1)$ ,第二对是 $ (2, 3)$ ,以此类推,最后一对是 $(2n-2, 2n-1)$ 。返回 最少交换座位的次数,以便每对情侣可以并肩坐在一起。每次交换可选择任意两人,让他们站起来交换座位。数据范围: $2\le n \le 30$ 题解:循环置换关系,假设有 $n$ 对坐错位置,那么每次交换可以解决一个冲突,最后一次交换时可以消除两个冲突。因此可以求出连通块的大小,每个连通块需要的交换次数是连通块的大小减一。使用并查集,每次将错误座位的情侣编号连接,可以使用 $size$ 数组维护连通块大小,也可以直接返回 $n - count$ , $count$ 为连通块个数。也可以直接 $dfs$ ,不用回...