ツバサの備忘録

主に備忘録代わりに精進記録を載せていくつもりです。

ABC097 D - Equals

問題
提出コード

解法

p_{i}p_{j}、およびp_{j}p_{k}が交換可能な場合、p_{i}p_{k}は2回の操作で交換可能になります。
このようなことが全てのペアについて言えるので、結局は

  • 入力で与えられる(x_{j},y_{j})を辺とみなしてN頂点M辺のグラフを作成したときに、最終的に連結な頂点同士はスワップ可能

となります。
あとは、任意のiについて、ip_{i}スワップ可能かどうかを調べ、可能な個数を求めれば答えとなります。
連結な部分の判定は、Union-Find木を用いれば用意に判定できるので、それを利用すればよいです。

解法

コンテスト当時は、初めてUnion-Find木に触れた問題なので、とても記憶に残っています。実装もUnion-Findは優しめなので結構教育的な一問?だと思っています。