ARC105-Eを解いた,
問題
与えられた頂点辺のグラフに対して先手と後手が辺を追加していく.しかし、頂点と頂点を連結にするような辺は追加できない.操作できなくなったら敗北、敗北しなかった方の勝利.
両者が最適に行動したときに勝利するのはどちらか.
解法
グラフの連結成分が二つで、頂点を含む連結成分とを含む連結成分がそれぞれ完全グラフである状態で手番が回ってきた人は負ける. また、最終的なグラフが定まっていればその辺数とが勝敗が容易に判断できる.
ここでが奇数であれば、最終的に頂点を含む連結成分のサイズをとすると、辺が最終的に追加されないが、これは常に奇数であることから容易にどちらの勝利か判定できる.
が偶数の場合は、最終的なの偶奇によって勝敗が定まる(片方は最終的にを偶数にしたい、もう片方はを奇数にしたいという状況になる). 最初に頂点と連結である頂点の数をとして、同様にを頂点について定める.
と置き、この値によって場合分けする.
1. の場合
最終的にを偶数にしたい方の勝利(が偶数よりサイズが奇数の連結成分の個数は偶数個、よって相手の操作を打ち消すような操作が確実にできる).
2. の場合
最終的にを奇数にしたい方の勝利(証明は1の場合と同じ).
3. の場合
先手の勝利(が偶数よりサイズが奇数の連結成分は奇数個、よって自分の有利な方に動かす方で1,2の場合に帰着できる).
よってUnionFindなどを用いてを求めれば答えが求まる.
考察
最終状態と辺の偶奇に注目できれば自然に.