A. Digit Minimization
長さが $2$ 以上なら残るものは決まります.
長さが $3$ 以上なら狙ったものを残せます.帰納法で簡単に示せます.
B. Z mod X = C
$z=c, y=b+c, x=a+b+c$ が条件を満たします.
C. Column Swapping
目的となる行列は確定しています.すると何らかの変化をしなければいけない列も決まります.
そのような列数が $0$ なら $i=j$ を答えて,$2$ ならそのスワップを試してみて判定します.
D. Traps
ちょうど $K$ 回飛び越えるとしてよいです.回数を使い切っていない場合,最後の要素を飛ばすことにすればよいので.
長さ $N$ の 01 列であって 1 を $K$ 個含むものに対する最適化です.スコアは 0 を選んだものの総和と 01 列の転倒数の和です.0,1 の個数が決まっている場合の 01 列の転倒数は,1 を選んだ場所(or 0 を選んだ場所)のインデックスの和から決まるので,場所ごとの寄与に分解できます.結局何らかの値の top $K$ sum を求めるタイプの問題に変換できます.
E. MEX vs DIFF
mex を固定したときの計算を考えます.mex 以下がひとつ以上存在するようにするために,他の値から変更してきますが,その際に種類数がなるべく減るように個数の少ないものから使っていきます.また mex 目標値そのものもすべて変換する必要があります.セグメント木二分探索などを使えばすべての目標値での計算が可能です.
F. Diverse Segments
$[l,r)$ が条件を満たすような最小の $r$ を $l$ ごとに管理します.$r=l$ で初期化しておき,必要に応じて chmax していきます.
$x$ を固定して $a_i=x$ となる $i$ のところでどういう条件があるかを考えます.各 $i$ に対して,「$a_i=a_j$ となる $j (i<j)$ がどの区間にも存在しない」という条件を処理します.この際,対象の区間としては $i$ を含むもののうちで最も右端が大きいものだけをとればよいです.$i$ に対してひとつの区間の条件を処理することになりました.
$i$ を含まないならば,区間に含まれる「$i$ の次」「最後」の両方を消さなければいけません.これが達成できれば $i$ に対する $j$ はすべて消せています.これを適切に処理すれば定数個の区間 chmax で書けます.
G. Euclid Guess
$x\leq M/3$ であるような $x$ は,$(3x,2x)$ から単独で作ることができます.
$x>M/3$ であるような $x$ について考えます.これは最初の余りとして現れて,それ以降の余りは $M/3$ 以下です.最後の余り $d$ は $2x+d\leq M$ かつ $d\mid x$ を満たします.この条件下で余りの列 $(x,d)$ を作れます.$M/3$ 以下の要素は単独で作れることから,最初の余りと最後の余り以外が登場するものを考える必要はありません.
最初・最後の余りにできるものでマッチングを作り,$M/3$ より大きなものを使い切れるというのが条件になります.
H. Hard Cut
1 の個数を n とします.超巨大な 2 べきを作る必要はないだろうと思って,小さな和を作る方法を考えます.まあまあ自由度があるので,十分たくさんの候補を作れそうです.
1 の個数が $n$ のときに必ず作れる数の集合を $f(n)$ とすれば,$f(a+b)\supset \{x+y\mid x\in f(a), y\in f(b)\}$ となります.特に,$[a,2a]\subset f(a)$ かつ $[b,2b]\subset f(b)$ ならば $[a+b,2a+2b]\subset f(a+b)$ となります.
実験すると $[9,18]\subset f(9), [10,20]\subset f(10)$ が分かります.なおこれを検証するにあたり $1$ の間に $0$ が大量に挿入されるパターンは考えなくてよいので,有限通りの全探索で検証可能です.
よって $9x+10y$ と書けるものはすべて上の性質を満たし,十分大きなすべての $n$ で $f(n)\supset [n,2n]$ が分かります.
十分大きいという範囲がちょっと大きいですが,「最寄りの $2$ べきが作れるか」という問題では $n=1,2,3,4,6,7,8,9,10$ が条件を満たしているので,結局 $n\leq 6$ に対してこれが正しいだろうという予想で実装しました.$16$ 以下ならば dp で解き,それ以上は半分に分けて解いて組み合わせます.$n=5$ のときは,$2$ べきが作れるならば $16$ 以下が作れるとしてよい($1$ を和に使うとしてよいことから)としてよいので,これも $8,16$ の場合を dp で解きました.