🐟

AtCoder青色になりました

2022/01/31に公開

こんにちは。

競プロをやっているまぐふらい(AtCoder:magurofly)です。

この度ABC237で青色になったので、青になるまでに何をやったかを書いてみようと思ったのですが・・・。
何が青になるまでにつながったかわからないので、水色になってから青になるまでのことを覚えている限り書いてみようと思います。

継続していたこと

多分これが一番重要度高いと思います。

  • コンテストに出る: 出ないと上がりません。
  • 問題を解く: 適当に問題を探して解いていました。アルゴ式もたまに埋めたり。
  • Twitterをする: 賛否両論ありそう。モチベにつながっていたと思います。

大まかなもの

やったことが印象に残っていることを書きます。

時間

(最初に)水色になったのが2021/01/02、青色になったのが2022/01/30なので、一年強かかっています。

コンテストに出た

コンテストに出ました。とはいっても、レーティング1500以上になってからは、出たり出なかったりでしたが。
ARCにもたまに出ました(unratedですが)。ARCに出ると考える力が養われると思うので、できるだけ出ていきたいです。
ABCに30回、ARCに8回、AGCに4回出ています。

解いた問題

問題は継続的に解いていました。全体ではRPSが266300点、TEEが107607秒(約30時間)くらいです。

最初に入水してから入青するまで、だいたいRPSで80000点くらい解いています。ABCでA〜Eを解くと1500点なので、だいたいコンテスト53回分くらいやってることになります。あれ、これってコンテストに出る以外そんなにやってない?

解いた問題のdifficultyに目を当てると、入水してから入青するまで、(アバウトに)灰×\textcolor{gray}{240}問、茶×\textcolor{brown}{75}問、緑×\textcolor{green}{94}問、水×\textcolor{cyan}{96}問、青×\textcolor{blue}{36}問、黄×\textcolor{#ED0}{13}問やっていることになります。
灰については除夜コンテストで108問一気に解いたのが大きかったですね。

作問をした

作問をしてコンテストを開いたりしました。作問は、なんかいい感じがします。

作問のやり方は二通りあって、解法から問題を作る方法と、原案から問題を作る方法があります。
解法から問題を作ると、解法は自明です。
しかし、原案から問題を作る場合は、まずは解いてみて解けるか確かめないといけないので、かなり良いと思います。
また、嘘解法を落とすテストケースを考えるとかは、注意力がつくと思います。
思いますばっかりですね。効果を測定とかしていないので当然ですが。

作問をしていると、当然「面白い問題を作りたい」欲が湧いてきます。
よくあるアルゴリズムを変な使い方をしてみたりとか、アルゴリズムを使えるところまでの帰着が非自明なものとか、計算量が非自明なものを作ってみたくなります。
するとアルゴリズムのオタクになります。詳しくなれます。

みなさんもMojaCoderに問題を投げたりコンテストを開いたり投げ銭をしたりしましょう。

記事を書いた

Scrapboxにメモみたいな記事をたくさん書きました。

https://scrapbox.io/magurofly/

たくさんありますね。これ全部水色になってから書いたものです。
・・・なんか競プロじゃないものもありますが。

もすーんバチャに参加した

2021/11~2021/12のあたりはよくもすーんバチャに参加していた覚えがあります。
時間が短くて、早解き力が要求されるバチャです。
もすーんバチャbotがツイートすると通知が来るようにしていました。
https://twitter.com/Mosoon_V

ユーザースクリプトを書いた

水色になってから書いたものです。

https://greasyfork.org/ja/scripts/420811-atcoderusers
https://greasyfork.org/ja/scripts/421663-atcoderlanguagebuttons
https://greasyfork.org/ja/scripts/423564-atcoder-theme-solarized-dark
https://greasyfork.org/ja/scripts/428862-atcoder-standings-watcher
https://greasyfork.org/ja/scripts/430286-新しい放置ゲームでポイント毎秒とポイント毎分を表示する
https://greasyfork.org/ja/scripts/433152-atcoder-easy-test-v2
https://greasyfork.org/ja/scripts/438105-atcoder-template
https://greasyfork.org/ja/scripts/439100-atcoder-for-large-display

地味に実装力の根源になっていないか?わかりません。

ライブラリを書いた

書きました。
アルゴリズムを調べることで、アルゴリズムを知ることができたと思います。
また、アルゴリズムを実装することで、その考え方をある程度わかった気がします。

https://github.com/magurofly/cp-library-rs/tree/parted
https://github.com/magurofly/cp-library-rb/
https://magurofly.github.io/cp-library-cpp/

その他

アルゴリズムの本を読んだりしていました。特にグラフ。

これから

精進するときは青diffと黄diffを中心に解きたい・・・といいつつも、緑diffに苦戦することもあるので緑〜水も埋めていきたいです。
これまで埋めるということを意識してこなかったので、うまくできるかわかりませんが・・・。
JOI埋めも良い気がします。やっていきたい。
https://joi.goodbaton.com/

時間があればこどふぉもできる限り出ていきたいですが、いかんせん時間帯が困りがち。
あと、SRMの問題は質が高いと聞いた[1]ので、TopCoderに参加することも考えています。

おわり

ありがとうございました。みんなもレート、ゲットじゃぞ〜?

脚注
  1. AtCoderで青色になりました - TERRYのブログ ↩︎

Discussion