99. AtCoder参加記録(AtCoder Regular Contest 138)
現状です。13回参加でレート 992 です(14回参加するまでレート補正期間中)。
ARCデビュー戦は惨敗でした。
今回はパフォーマンス 845 で、なかなかやらかしています(ワースト2)。
Aを通して、BはWAで、CDEFは未解答です。Aで3ペナです(ひどい)。
各問題の感想です。
A
とりあえず 項め以降に 項めまでの最小値( とします)より大きい値がないとダメだな、と問題を整理。ここから、最も 項めに近い、 より大きい値を持って来ればよさそう?と考えました。
色々パターンを考えて、結局、, で を満たすペアを全て見て、 の最小値が答えになると分かりました。愚直にやるのは無理なので、各 について 以下の値があるインデックスの最大値を Dictionary に保存し、MultiSet で 集合を記録して、 について UpperBound から 未満のキーを取得し、上記 の値を求めて最小値を出せば で答えを出せます。
…ということに開始15分くらいで気付いていたのですが、太文字にした「以下の」最大値を保存するという処理が抜けていて、WAの原因が分からず完全に焦ってしまいました。
結局、40分くらいで諦めてB問題に移りました。
そして、B問題を諦めてから戻ってきたときにバグに気付き、かなり焦りながら修正してなんとか105分で通しました(ひどい)。
B
Aでやらかした焦りから完全に見当外れな解き方を試みていました。Aをなんとか通してから戻ってみると、素直に(?) を1手ずつ戻していけば解けそうでは…?と気付きましたが、時すでに遅しでした。
C, D, E, F
見てないです。
今回はかなり反省点の多いコンテストでした。普通に0完も見えていたので…。
- 複雑なアルゴリズムになった場合、一度文章で整理してから実装に落とし込む方が無難
- 変なバグらせ方してるなら早めに次の問題を見に行くべき
- ちょっと焦りすぎ…