ARC105 E - Keep Graph Disconnected

↓にゃ

atcoder.jp

  最終的に頂点1を含む連結成分のサイズをa, 頂点Nを含む連結成分のサイズをbとすると, 二人が選べる辺の本数は \frac{N(N-1)}{2} - M - ab本となりまふ. この偶奇, すなわちabの偶奇によって勝敗が決まりまふ. 実際には, a+b=NなのでNの偶奇でまず場合分けをすることにしまふ.

 Nが奇数の時, a,bのうち一方は奇数, もう一方は偶数になるのでabは奇数となり, 勝敗がこの時点で分かりまふ.

 Nが偶数の時, a,bが両方奇数ならabは奇数に, 両方偶数ならabは偶数になりまふ. ここで, 1Nも含まない, サイズが奇数の連結成分の個数をxとしまふ.

 xが0の時, 先手も後手もa,bの偶奇を変えられないので初期時点でのa,bの偶奇が都合の良いほうが勝ちまふ.

xが1の時, a,bは一方が奇数でもう一方が偶数なので, 先手が両方奇数にするか両方偶数にするか選べまふ. 先手は都合の良いほうを選ぶので, 先手が勝ちまふ. 

xが2の時, a,bの偶奇が先手にとって都合がよければ2つの奇数サイズの連結成分をマージすればx=0の状況になり, 先手が勝ちまふ. そうで無いとき, x=1にしてしまうと後手が勝ちまふし, x=2のままにしてもa,bの偶奇が後手にとって都合が良いので後手が勝ちまふ.

 このように順に調べていくと, 一般にxが奇数なら先手が勝ち, 偶数ならa,bの偶奇が都合の良いほうが勝つことが導けまふ.

↓提出コード

atcoder.jp