CF #500

A

数列を2個に割って(l_max - l_min) * (r_max - r_min)をminimize
arc073.contest.atcoder.jp

B

0, 1が書かれたグリッドなのでなにはともあれ二部グラフ
→連結なら完全グラフにできそう
 →連結成分の個数

C

とりあえずどこを使うか決まってたら? →各場所についてするべき高さは簡単に決まる  →自分自身を使うかどうかと、隣の要素を使うかどうかのみに依存する

→2個以上離れた要素は関係がない
 →左から順に決めていくDP、キーを減らすのがちょっとテクニカル

D

観察すればなんとなく良さそうな戦略はわかるが、色々な場合があり、とても実装できるものではない
→物事を考えやすく
 →先頭と最後に'a', 'b'をつけてもいいという天啓が降ってくる
  →常に先頭と最後の文字が異なるため、扱いやすく

全体を一気にシミュレーションすると人が死ぬので、どうにか小さい部分問題に落とすような思考を出来ないか
→数列の(3, 1)個目を繋げば良さそう