A. Professor GukiZ’s Robot
$\max(|x|,|y|)$
B. Grandfather Dovlet’s calculator
$f(x) = f(x/10) + cost(x \bmod 10)$ の要領で計算.
C. Pearls in a Row
左から貪欲に見て,同じ種類が $2$ 個になったらひとつのセグメントを切り出します.
D. Professor GukiZ and Two Arrays
なにもしない,$1$ つずつを交換,$2$ つずつを交換というそれぞれで求めます.
$2$ つずつ交換する際には $2$ つの和としてありうるものを列挙しておき,それぞれに対してベストな交換対象を二分探索や尺取りで調べます.
E. New Year Tree
Euler Tour をとれば,「区間に定数を代入」「区間内の種類数を調べる」に帰着されます.
種類数が少ないことを利用すると,区間内にあるものの集合が 64 bit 整数で書けて,あとは遅延セグメント木でできます.
F. Xors on Segments
$0\oplus \cdots \oplus x$ を前計算しておき,$f(a,b) = g(a)\oplus h(b)$ のように考えます.
rollback と区間延長ができればよい Mo’s Algorithm を使います.すると,集合 $S$ を管理しながら,$S$ に要素を追加したり $\min_{s\in S}(x\oplus s)$ を求めたりができればよくなり,これは binary trie でできます.