Toy と帽子と ADP BE

主にプログラミングに関わる話をゆるくエモくやっていきます

AtCoder Beginner Contest 217

4完。11:02。辛すぎ・・・。

各問題

A - Lexicographic Order

S < T をするだけです。

B - AtCoder Quiz

ちょっと考えましたが、vectorに入れてソートして、[0]がABCでなければABC、[1]がAGCでなければAGC、... としました。

C - Inverse of Permutation

答えの配列 ans を用意して、ans[p[i]] = i (i は 1-indexed) とすればよいです。

D - Cutting Woods

c = 1のときsetにを溜め込んで、c = 2のときそのsetを二分探索して該当位置の左右を確定して長さを求めます。

最初にsetに0とLを入れておけば両端の処理が楽になります。

E - Sorting Queries

全部ソートすると大変なので、ソート済みの列と、そうでない追加用列に分けます。

追加用列はdeque(queueでもいいけど)を使えばよく、ソート済みの列はpriority_queueやmultisetを使えばよいです。

で、私は列を分けることには気づいたのですが、両方dequeを使ってソート処理(というかマージ処理)を書いていたので、最後までTLEが取れませんでした・・・。 on_

コンテスト終了後にmultisetであっさり通ってしまいました・・・。

atcoder.jp

それ以降

見てません。

まとめ

multisetでソートさせるのは重い処理だと思いこんでいたのが敗因。Dまでかなり早かっただけに辛い・・・。

f:id:mdstoy:20210904231612p:plain