AGC058

1完。実力をしっかり測れるBやめちくりー。気づいたら2時間経っていた。そこでようやく、自分は天才じゃないからBの解き方がわかってないんだろうと気づいてとても悲しかった。ずっとつらい。

コンテスト前の火消しに「限りなく灰色へ」をやった。

A - Make it Zigzag

昇順や降順の列を手で試して、できそうではある。次にランダムっぽいものを試して、最初の山を作る3個に注目してみる。3個の中で最大のものを高々1回のスワップで中央に持ってくることができて山が作れる。その次は、2個ずらして山を作るか1個ずらして谷を作るか2通りの道があるが、山を作るほうへ行ってみる。すると、同じことができそうだ。スワップをしても左の要素は小さくしかならない。最初に作った山を壊すことはない。気になるのはN=1あるいは最後の2個だが、これも条件を満たすようにスワップして直前の山は壊れない。

B - Adjacent Chmax

2 1 3 4 のケースで 3 4 4 4 となるパターンが厄介。区間DPや再帰を考えるが、結局はそれを解決できなさそう。累積和を持って区間DPというのを、解けた気がして書いていたが、やはり解決していない。これで2時間。それからどうにか体の向きを変えつつ(本当は思考の向きを変えたい)考え続ける。

書きながら考えてたけどやはり上手くいかん。momoken配信観ながらうじうじしてたがさすがに寝るか。無力。

(追記)終了直前くらいに「Ears」(いわゆる耳DP)は思いついてたけど、そのときはわからなかった。解説を(全然わからないけど)読んで、あーたしかに行ける場所は全部行けるかってなって、各要素について左右に自分より大きい数が現れるまで伸ばして区間を前計算しておき、その区間内の区間なら全部できるから、DPすればいい。DPの更新は、区間に入ってるやつだけそこまでの累積和を入れる。