A. Word Correction
1 文字ずつ足していって 2 文字続いてたら消す
B. Run For Your Prize
物に対して近い人が担当します.
C. Constructing Tests
$0$ の個数最小化は行・列の番号が $m$ の倍数のところに $0$ を置いた場合です.$[mx+1,mx+m]\times [my+1,my+m]$ の形の正方形にそれぞれひとつ以上置く必要があることから下限が分かります.
$x$ は平方数の差として書ける必要があり,また $3n^2/4\leq x$ となることから $O(\sqrt{x})$ 程度の全探索で解けます.
D. Buy a Ticket
辺の長さを 2 倍しておき(2d(i,j) に対応)各頂点から新しい頂点に重み a[j] の辺を張っておくと,単一始点最短路問題になります.
E. Max History
ある値 $x$ が足されるのは,真に大きい値がその左にない場合です.$x$ 未満の値を無視したときに先頭が $x$ になると思えば,$x$ が足される確率が簡単に分かります.
F. Erasing Substrings
答を 1 文字ずつ決めていきます.その時点までで消去した長さの総和としてありうるものを持つ bit dp をします.
G. Shortest Path Queries
分割統治によって削除操作をなくして辺の追加と roll back に帰着します.
各頂点からの根からのパス重みを potentialized unionfind で持ちます.
またサイクル基底のなすベクトル空間の基底も同様に持ってマージします.連結性が保証されているため,成分ごとに管理する必要はありません.