A. Lucky Year
候補となる数 $a\times 10^b$ は少ないです.
B. Average Sleep Time
累積和の前計算のもと区間和がとれる.
C. Tea Party
まず半分以上になるまで入れます.そのあと,$a$ が大きいところから順に,入れられるだけ入れていきます.
D. Array Division
動かしてから切るのではなく,切ってから動かすことを考えます.切る場所を決めたあと左グループから右グループ(または逆)にどのような値を動かすと和が等しくなるかを計算し,それが可能かを判定します.
E. Selling Souvenirs
重みの種類数が少ないナップサック問題です.
最大重みのところだけ求めればよいので,2 種だけ畳み込んだあと 3 種類目の個数を全探索すればもっと易しい解になります.
F. Card Game
二分探索します.二分探索内は,0, 1 列を定める最適化問題です.$x_i=1$ のとき $p$ 獲得.ある組 $(i,j)$ について $x_i=x_j=1$ ならば $-\infty$ 獲得.という要領です.
この制約は最小カットで書けません.
$c_i=1$ であるようなものを使うか否かを固定すれば,禁止制約が二部グラフの反対側の部分に入るので,片方の部分の $x_i$ の意味を反転しておくことですべてを最小カットで表現できます.
G. Anthem of Berland
$t$ だけから作った trie に Aho-Corasick 法で suffix link をはっておきます.(KMP と呼ばれているものと同じはず)
$s$ が $t$ を含む回数は,この trie を遷移することで数えられます.したがって “?” が含まれている場合の最適化は,「trie のどのノードに居るか」を状態として 1 文字ずつ決めていく dp により解けます.