Aのみ!以上
A - Connection and Disconnection
文字数Mの文字列Sに対して考えると、連続する文字数を数えて2で割ればよい。 aaa→1個書き換え、aaaa→2個書き換え・・・みたいなん。
k回のくり返しがある場合
場合分けしていくとわかりやすい*1。
B - Graph Partition
解説読むと簡単に思える不思議。
- 二部グラフを作れる→それをとすれば条件を満たす分け方になる(同集合内でのパスがない)、条件を満たす→二部グラフを作れる
- d+1以上に分割→どこかのを分割→に3つ以上の集合が隣接することになるので満たさなくなる
- ワーシャルフロイド:グラフに含まれる頂点のすべての組の最短距離を求めることができる→最大値がグラフの直径