プログラミング初心者がAtCoderに挑戦してみたお話。【その5】

スポンサーリンク
5 プログラミング

こんにちは~
昨日(9/16)行われたAtCoder Beginner Contest 141に参加したので、その感想と考察を書きます。

今回でABC参加5回目です。

ちなみに前回の記事はこちら↓

プログラミング初心者がAtCoderに挑戦してみたお話。【その4】
どうもこんにちは。 昨日(9/8)行われたAtCoder Beginner Contest 140に参加したので、その...

結果はというと…

スポンサーリンク

結果

5かいめ

順位:2771位/5166人中
パフォーマンス:643(茶色)
レート:433

はい。大爆死しました。。

25分3完だったんですが、やはり今回もD問題まで易しめだった様子。
今回は主に知識的要因でDが解けなかったんですが、それを抜きにしてもCまで解くスピードが遅かった…
(早解きにはあまり拘りたくないんですが、”競プロを”得意にしようと思ったらスピードもぼちぼち意識しなくちゃいけないですね。現段階だと解ける数増やしたいけど)

易しめだったっぽい(?)Dが解けなかった大きな要因は “priority queue” という概念を知らなかったことです。TwitterのAtCoder勢を見てると殆どの人が「D:priority queue」みたいに言ってたので本当に基礎知識の部類なんすねこれ。
どうやら蟻本(競技プログラミングの基礎教科書的な本)の初級編に出てくる知識っぽい。
(pythonではheapqがこれにあたる)

そういう意味では、知らないと解けない度が高い問題だったのかな。
(過去問もっと多めに解いてたらコンテスト前にこの知識は習得できていたかもしれない。。)

…とはいえ、priority queueという知識を習得してなかった事ではなく、自力で別の解法まで辿り着けなかった思考過程の鈍さが今回は悔しいです。
コンテスト中に色々考えたんですが、heapqのような、言語側で用意されたデフォルトで計算量を減らす機構を使わないと、工夫した解法で解こうとしても結局特定のケースでO(NM)相当の計算量に帰結してしまうかなと思ってしまったんですよね。

あと「ググる」力も必要で、コンテスト中に類似解法をググるという発想に至らなかったのも鈍い。。
(ググるの邪道に思えるけど結局業務でプログラミング使う時もググるからね。最重要である地力を鍛えてるわけではないにしろ)

heapqを使わない別の解法が思いついたらまた後日更新するかもしれません。

スポンサーリンク

次回以降の目標

次回は最低限緑パフォは目標にしたいとこです。
(次回も今回と同じようなパフォーマンスになったら根本的に勉強法とAtCoderへの向き合い方を見直す必要があるかも。。)
他の趣味の合間に適当に(しかし集中して)頑張ります。

【追記】
続きの記事を書きました!

プログラミング初心者がAtCoderに挑戦してみたお話。【その6】
こんにちは!じんせーです。 前回のAtCoder記事からだいぶ時間が空いてしまいましたが、 久しぶりのコンテスト...

こちらも是非ご覧ください。

コメント

  1. […] […]

タイトルとURLをコピーしました