A. Optimal Purchase
$3$ つ組を $\min(3a,b)$ でとっていきます.
B. Digit String
残せる文字列の構造は,「22222」のあとに奇数が連打されるものです.
C. Arrange the Numbers in a Circle
頻度 $2$ 以上のものは,$2$ 種以上使うならば全種使うとしてよいです.(他の種類の固まりの隣に挿入する操作を考える.)
頻度 $2$ 以上のものを $1$ 種だけ使う場合とそうでない場合に場合分けします.
いずれにせよ,それぞれ大きさ $2$ 以上の固まりを作って間に頻度 $1$ のものを挿入という形になります.挿入できる $1$ の最大個数を調べます.
ややこしいけどサンプルやランダムテストが合うまで実装し続ければ何とかなるタイプだとは思います.
D. Good Schedule
各 $L$ に対して最大の $R$ を求められればよいです.
まず,$L$ 以降での $1$ の初出を $A, B$ それぞれで求めます.不一致ならば答が確定です.
一致していたら,その日以降での $2$ の初出を求めます.不一致ならば答が確定し,一致ならば $3$ の初出を求めます.
このような計算で登場する状態は,日付 $L$ を除き,$A[i]=B[i]$ であるような日付 $i$ において $A[i]+1$ を探し始めるような状態だけです.これは $i$ に対応する高々 $O(N)$ 状態です.
よって適当な前計算またはメモ化再帰などで答を計算できます.
E. Minimum Influence
自明解法としては計算式の分かれる $9$ 領域の矩形クエリということになって,wavelet matrix に static rmq をのせるような感じでもできると思うのですが,TL に自信がなくやめました.
「$[t,t+d]$ ならば $x$,$[t+d,\infty]$ ならば $t+d$」というタイプの関数がありますが,これは「$[t,\infty]$ ならば $\min(x,t+d)$」とまとめられることに注意します.目標が最小化なので,「$x, t+d$ の好きな方をスコアとして採用できる」と緩和してよいです.すると,$I_p, I_c$ それぞれで合計 $4$ 種のどのスコア計算方法を採用するかを固定して解く.というようにできます.
えらいのは,$t+d$ における計算式の分岐がなくなって,単に $t$ の前後でのみ計算式が違うだけになった点です.矩形クエリとしては $4$ 領域ということになります.
これは平面走査しつつセグメント木区間クエリという形で解くことができます.
F. Game on Growing Tree
まず全頂点に対して $1$ 回解くことを考えます.
これも少し難しいです.Alice が最初に置く場所を固定してみます(言い換えれば根付き木とします).
すると,この場合の答は bottom up な木 dp で計算できることが分かります.
より詳細に.まず Bob の戦略は Alice の近傍としてよいです.どの subtree から選ぶかを決めた時点でその subtree の根以外に置いて得することはないからです.Bob はひとつの subtree を消して,Alice は残った subtree のうち都合のよいものに進むという形になります.木 dp の計算としては,「子の値の 2nd max + 1」というタイプの計算になります.
根付き木が解けました.「1st max, 2nd max の組」はモノイドなので,これは全方位木 dp にできます.これで,(根なし)木の場合が解けました.
すべての prefix に対して解く際には,次に注目すればよいです.
- $\mathrm{ANS}[n]$ は広義単調増加である(明らか).
- $\mathrm{ANS}[n]$ は $O(\log N)$ である.
後者を確認します.根付き木のゲームで dp の値が $k$ になったということは,子のうち $2$ つ以上に $k-1$ 以上があったということです.すると子の子には $4$ つ以上に $k-2$ 以上があったということです.こういうことをやっていけばよいです.
したがって,「すべての $\mathrm{ANS}$ を求める」ことは,$\mathrm{ANS}$ の値が切り替わる場所 $O(\log N)$ 箇所を発見することと等価です.これらを全部二分探索で求めていきます.
$O(\log^2N)$ 回の全方位木 dp という計算量で,重めの $O(N\log^2N)$ 時間で解けます.私は定数倍バトル状態になりました.
コンテスト後の気づき.実装してない.
おそらく dp の状態として「$n$ をいくつまで増やすと $dp[n]\leq k$ になりますか?」を $k=0,1,2,\ldots,$ について持つというタイプのことをすると $1$ 回の全方位木 dp かつ $O(N\log N)$ 時間になる.
