ツバサの備忘録

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

ABC126 E - 1 or 2

問題
提出コード

解法

A_{X_{i}}を指定してその数字を特定したとします。
すると、A_{Y_{i}}Z_{i}の偶奇に関わらず、自動的に数字が特定できます。
そして、これが連鎖的に続くことになり、
他にA_{X_{i}}, A_{Y_{i}}が条件に含まれている部分についても自動的に、もう片方が特定されていきます。
ので、結局はA_{X_{i}},A_{Y_{i}}という条件は、その2つの頂点を繋ぐ辺が存在している、と考えると、N頂点のグラフの連結成分の個数を求める問題になり、これはUnion-Findを利用して、与えられた辺を結び付けていくことで、うまく個数を数えられるようになります。
答えは、root(i) = iとなっているiの個数を求めればいいです。
自分は、iについて全探索をし、root(i)が初登場のときにカウント、そうでなければスルー、という感じでカウントをしました。

感想

はじめはA_{Z_{i}}だと思っていました。
Z_{i}が今回の問題にほぼ無関係であることがわかってからはすぐだったので良かったと思います。