徒然

思いついたら書きます

AtCoder青色になりました

トヨタ自動車プログラミングコンテスト2022(AtCoder Beginner Contest 270)にて、AtCoder開始以来ずっと目標にしていた青コーダーになりました!
初参加から3年少々かかりました。

atcoder.jp

自己紹介

  • 名古屋大学卒(落ちこぼれ)

  • 中小SIer所属のしがないCOBOLer

  • 使用言語はPython

  • 自称得意分野はグラフ

  • 苦手分野はad-hoc問題

  • 好きな解法は乱択アルゴリズム

  • Pythonのパッと書ける特性を活かして水diff~青diffを早解きするのが主なレートの稼ぎ方

精進量

やったこと

効果があったこと

競プロ典型90問を解いた

競プロ典型 90 問を解いていきました。90問中78問埋めました。
当時知らなかった典型テクが多く、かなり勉強になりました。

Streakを続けた

Streak 365 daysになるまで毎日問題を解きました。
問題を毎日解く習慣ができてたまに難しい問題に挑戦する意欲になったのは良かったかなと思います。
あとは必然的にABCの過去問が埋まっていくので知見が増えていきました。最終的にC問題は全て解きました。
Streak1年を達成して気を抜いて366日目の23:59にACしていない事実に気づいて手遅れになっちゃいましたが……

ライブラリを整理した

ライブラリ整理して一部はGithubで公開を始めました。バグ報告お待ちしております。

github.com

効果がなかったこと

COBOLを使えるようにした

COBOL2種でLanguage Ownerを取るまで埋めました(三日天下でしたけど)。
Pythonで受けられない恩恵をCOBOLで受けることはなかったので、ネタになる以外のメリットはなかったです。
コードが動く速度がPython(非PyPy)と同じとは思わなかった…… GnuCOBOLが有志のプロジェクトなので仕方ないんですけど。
それでも唯一メリットを挙げるとしたらnext_permutationを勉強するきっかけになったくらいでしょうか(別記事)。

これから効果がありそうなこと

C++を使えるようにした

AtCoder開始以来ずっとPythonを使ってきましたが、黄diffあたりからはどうしてもPythonで解くのが難しい問題にぶち当たるので、C++も書けるように勉強しました。
本番中は基本Pythonで書くのですが、ABC270-FがPyPyでTLEしたのをC++で書き直してACしたのが入青のきっかけになりましたし、これから使える機会が増えてくるのかなと思ってます。
AHCでもC++で書くようになりました。やはり速いのでPythonでちまちま定数倍高速化するのが馬鹿らしくなりますね。
でもポインタよくわからないし、デバッグは難しいし、分かり合うにはまだまだ時間がかかりそうです。

これからやりたいこと

Library Checkerを埋める

Library Checker(yosupo judge)をちょっとずつ埋めています。
問題のレベルが高すぎて今のところコンテストでは役に立ってはいないのですが、きっとこれから役立つでしょう。
Enumerate PrimeはPythonに移植したのでそのうちブログ記事にしたいです。

ARC、AGCに出る

ad-hocが苦手なのもあり、ARCやAGCはあまり良い思い出がなくここまで極力避けてきました。
しかし今後はもし爆死してレートが落ちても青タッチした事実は変わらないので、これからは積極的に出ていこうかと思います。

yukicoderやCodeforcesに出る

yukicoderやCodeforcesもあまり参加できていないのでこれから参加していきたいです。
金曜夜のゲーム欲や深夜の睡眠欲との戦いになりますが……

青色になっての感想

水色まではわりとすんなりなれたのですが、そこからはかなり苦労しました。
水で地頭で殴れるレベルに達してしまったのもそうですが、最近はレベルが上がりすぎじゃないですか?
始めた頃はナップサックDPやUnion-Findが書ければ緑*1のイメージだったのが、最近ではbit全探索が灰diff*2な例もありますし、学習環境が整うにつれてレートを上げるのもどんどん難しくなっていくのかなと思います。
ただ自分がStreakを続けて解いた問題を増やすにつれてレートも増えていったので、また努力でなんとかなるのかなとも思ったりします。今後はわからないですけど。
今は青になれて嬉しい気持ちと無事青に到達してホッとしている気持ちが半々です。

次の目標

次の目標は黄色……と言いたいところですが、自分の地頭ではあまりなれる気がしていません。
暖色コーダーは東大京東工大出身がほとんどですしおすし(死語)。
当分は青に定着するとかHeuristicも青になるとかR1800(1級)になるとかが目標になってくるでしょうか。
コボラーなので高度なアルゴリズムは業務上全く必要ないので、趣味の範疇でちまちまコンテストに参加していけたら良いかなと思っています。
ただ暖色でようやく人権を認められるみたいなところもある*3ので、最終的な目標としては持っておこうかなと頭の片隅で思っておきます。

*1:この問題とか https://atcoder.jp/contests/abc153/tasks/abc153_e

*2:https://atcoder.jp/contests/abc269/tasks/abc269_c

*3:有段者になったりユーザー解説編集権を得たりする 寒色は解説記事を書かないでほしいという主旨のツイートを昔見て、某社長もそれに同意してた気がするけどソースが見つからない