A. Maximize the Last Element
ある場所の左右にある要素数がどちらも偶数であるというのがそれを残せる条件になります.
B. AND Reconstruction
$a_i\supset b_i,b_{i-1}$ です.よって $a_i\supset b_i\cup b_{i+1}$ で,この範囲で $a_i$ を大きくする利点はありません.
$a_i = b_i\bup b_{i+1}$ として条件が満たせたかをチェックします.
C. Absolute Zero
$\min, \max$ の中点付近を選び続けることで,$\max-\min$ をおおよそ半分にしていけます.これで $30$ 回程度で $a_i\in\{0,1\}$ にできます.
「全部 $\mod 2$ で等しい」という必要条件があって,必要条件が満たされているならばこの方法でよいです.
D. Prime XOR Coloring
$\pmod{4}$ をそのまま色とすれば,任意の色で $4$ 色彩色可能です.$n=6$ 時点で $4$ 色必要だと分かり,あとは $n\leq 5$ を例外処理します.
E. Coloring Game
常に色 1,2 だけを指定する戦略を考えると,「二部グラフでない場合には Alice win」が分かります.
二部グラフであるとして Bob の戦略を考えます.二部グラフなので頂点集合を $V_1, V_2$ に分けておきます.
Alice の指定に色 $1$ があり $V_1\neq \emptyset$ ならばその点のひとつを色 $1$ で塗るようにします.Alice の指定に色 $2$ があり $V_2\neq \emptyset$ ならばその点のひとつを色 $2$ で塗るようにします.
どちらの戦略もとれなくなったとき Alice の指定には色 $3$ があるので,それを未着色の頂点に塗るようにします.
色 $3$ を塗り始める時点で 「$V_1$ を全部色 $1$ で塗った」「$V_2$ を全部色 $2$ で塗った」のどちらかが成り立つので,この方法で色 $3$ が衝突してしまう心配もありません.
F. Triangle Formation
クエリごとにほぼ独立に解けます.列がソートされているとして,$(i,i+1,i+2)$ が失敗であるなら $a_{i+2}\geq 2a_i$ です.$(i,i+1,i+2)$ のような $3$ つ組をたくさん作ってこのうち $1$ 個を除き失敗し続けているとすると,要素数は大きくないことが示せます.よって列が十分長いなら YES としてしまってよいです.
短いとき,実際に列を取り出してソートします.
$i<j<k$ かつ $3$ つ組 $(i,j,k)$ で三角形が成立するとき,$i,j$ を可能な限りインクリメントしても三角形が成立します.もう片方の三角形と使うインデックスが重複する操作をしない範囲で可能な限りこの操作を行います.すると,次のどちらかを仮定できます.
- $2$ つの三角形は $(i,i+1,i+2)$ と $(j,j+1,j+2)$ の形である.
- $2$ つの三角形で使う添字は $(i,i+1,i+2,i+3,i+4,i+5)$ の形である.ただしどの組み合わせで使われているかは自由度がある.
これらを探索すればよいです.
G. Grid Reset
横置きは必ず左寄せ,縦置きは必ず上寄せで置くようにします.左上 $k\times k$,右上 $k\times (m-k)$,左下 $(n-k)\times k$ に分けて考える感じになります.
消去操作が可能なら消去,そうでなければ行番号や列番号のうち最大のものに置くようにすると常に操作可能です.
途中経過で出てくる状態をひたすら列挙すれば確認できる感じです.
H. Prime Split Game
数の価値を適当に分類することを目指します.次のような実験をしました:$a,b$ について,常に $result(a,c)=result(b,c)$ や $result(a,c,d)=result(b,c,d)$ のとき $a,b$ の価値を同じとする.これでクリークに分かれる保証はないですが,上手くいってくれました.
まずは奇数をタイプ $A, B$ に分類します.奇数の分割は $(2,p-2)$ というものだけですが,これが行える回数が偶数・奇数に応じてタイプ $A,B$ とします.
偶数も,$2$ はタイプ $A$ としておきます.素数が $A,B$ に分類されているので,それ以外の数は $AA, AB, BB$ に分割可能かどうかを調べておきます.
新たに,$AA$ に分割不可能な偶数もタイプ $A$ と呼ぶことにします.特徴として,
- $A$ は分割不可能,または分割先は「$B$ と何か」である.
- $A$ 以外は $AA$ に分割可能.
となっています.ここから
- $N$ が偶数のとき,すべて $A$ ならば後手勝ち.そうでなければ先手勝ち.
- 先手の戦略:$A$ 以外のものを $AA$ にするという操作を何か所かでやれば全部 $A$ の状態にできる.
- 後手の戦略:先手が操作したところは,「$B$ と何か」という組になっている.それを $B\to AA$ として戻せる.
- $N$ が奇数のとき
- すべて $A$ なら後手勝ち.
- そうでなくて $A$ が $1$ 個以上ならば先手勝ち.
ここまでは分かります.$N$ が奇数でどれも $A$ ではないときだけが問題です.すべての数は分割可能で,$AA$ には分割可能,$AB$ や $BB$ にもできるかもということになっています.相手に「先手勝ち盤面」を渡さないようにするには,$BB$ への分割という操作をするしかありません.$BB$ に分割可能な数の個数で勝利条件が決まります.
I. Grid Game
基本的な発想は,マッチングプレイです.$2$ マスずつペアにして $x, x+1$ を書いておきマッチングプレイをすれば,相手より高々 $HW/2$ 大きい程度で済むのでそこから少し改善できれば大丈夫という方針です.
奇数の場合
$HW$ を書いたマス以外をマッチングしておきます.自分は $HW$ を絶対にとらないようにして,マッチング可能ならばマッチングを使う,そうでないならば $HW$ 以外の好きなものをとる,というようにすればよいです.
偶数の場合
$2$ マス単位で分割したマッチングプレイだけではだめで,適当な偶数サイズのマスに分割して戦略を考えます.後手が得できるタイプのブロックをいくつか用意して,あとはマッチングを使います.
$T$ 字型の $4$ マスを使います.この「中心」が画面端に来るようにして,「中心」にとても小さい数を書いておけば,この $4$ マスについてほぼ先手が大きく得をできます.例外として,先手が初手でこの中心をとるときだけです.$H, W$ が十分大きいとき,このような $T$ 字を $4$ つ置くと,このうち少なくとも $3$ つでは $HW$ 程度の得ができ,高々 $1$ つでは $HW$ の損をするため,この部分で $2HW$ 程度の得ができます.残りをマッチングプレイしても大丈夫です.$H, W$ が小さいときも勝てていることが確認できます.

あとはグリッドを $T$ 字 $4$ つとマッチングに分解するという実装をすればよいです.小さいときの場合分けを含めて数パターン考えればよいと思います.
