102. 今日解いた問題(2022.04.14)
本日より、問題を開いてから AC まで掛かったおおよその時間も記録しようと思います。
問題一覧
- D - Harlequin (Diff: 1106)
- E - Colorful Blocks (Diff: 1442)
- E - Friendships (Diff: 1433)
自分の解法など
D - Harlequin
8分。
各色のりんごの残りを 個とします。任意の について または であるとき、 であるりんごを全て食べれば勝てます。 であるりんごがあるとき、この色のりんごは1ターンで食べきれないので、このターンでは勝てません。よって、相手の行動によって「必勝パターン」を作らせれば勝てます。
少し考察すると、「相手に偶数を押し付ければ必勝パターンに持ち込める」ことがわかります。奇数になっているりんごを食べて偶数にする、という行動を繰り返せば勝てます。 よって、基本的に先手必勝です。ただし、最初のりんごが全て偶数だった場合のみ、先手が奇数を作らざるを得ないので後手が勝ちます。
以上より、「 である が存在するなら先手の勝ち、それ以外なら後手の勝ち」です。計算量は 。
E - Colorful Blocks
15分。
まず、隣り合うブロックが全て異なる色で塗られているパターンを考えます。最初は 色で塗れて、その次は最初に選んだ色以外 色で塗れて、さらにその次は前に選んだ色以外 色で塗れて…となるので、 通りです。
次に、 組同じ色で塗られているパターンを考えます。このような組は 通り考えられます。組にしたブロックを 1 つにして考えると、 個のブロックを隣り合うものが異なる色になるように塗るパターン数を求める問題になります。以上より、 通りです。
出力する答えは です。Combination の計算は、ループごとに分子・分母に数値を1つずつ掛けていくことで定数時間で行えます。計算量は 。
E - Friendships
20分。
よく分からないので図を書いて考えてみます。 くらいで考えましょう。 のとき、完全グラフが条件を満たします。
ここから少しずつ辺を削って、 のグラフを作れないか考えてみます。まず、現在隣り合っている頂点の組を列挙すると、
です。
の場合、 の辺を消せばよいです。
ですが、 を消せばよいです。…と考えると、最初に列挙した「完全グラフで隣り合う頂点の組」を逆に削っていけば の値を増やせることに気付きます。ただしグラフは連結であるという条件があるため、頂点 との組は削れません。そして、ここが の上限値です。
まとめると、
- であれば不可能
- それ以外なら、上記手順で完全グラフから順に辺を削ったグラフが答え
となります。完全グラフ構築に最も時間がかかり、計算量は です。