A. Train and Peter
文字列 S に A, B がこの順に文字重複なく現れるか,という問題を S と reverse(S) に対して解きます.貪欲.
B. Obsession with Robots
各時点で隣接マスが直前のマスだけであるかどうかを判定します.
C. Looking for Order
「ひとつとって戻る」「ふたつとって戻る」の 2 種の遷移で bit dp をします.この際,「未選択のもののうち最小番号のものを必ず使う」という制約を課すことで計算量が $O(N\cdot 2^N)$ になります.
D. Two Friends
いくつかのパターンがあります.
- 同行して別れたあと,A は商店・自宅.B は自宅に行く.
- 同行して商店に行き,そのあと自宅へ行く.
- 同行して自宅へ行き,A は別れたあと商店・自宅に行く.
場合分けさえできれば計算は簡単です.最初のパターンが一番計算は非自明ですが,二分探索して円の交点などを別れる地点の交点の候補とするという要領でできます.
E. Beads
reverse, flip をまとめたときの最小要素でソートして $K$ 番目という問題.
辞書順 $K$ 番目なので,prefix を決めたときの数え上げができればよいです.
数え上げは,両端の桁から順に決めていく桁 dp でできます.