AtCoder 橙になりました!

2021/12/04 に行われた AtCoder Grand Contest 056 で橙 Coder になりました。 これを機にいままでの競プロ人生を簡単に振り返りたいと思います。 基本的に自分語りなので有用情報はほとんどないと思います。あしからず。*1

f:id:sapphire15:20211205141257p:plain

2021/12/05 時点での精進記録です。

f:id:sapphire15:20211205140336p:plain

f:id:sapphire15:20211205140441p:plain

f:id:sapphire15:20211205140544p:plain

f:id:sapphire15:20211205140937p:plain

2019年の3月頃に初めておよそ2年10ヶ月かかりました。 最初に黄色になってからだと1年7ヶ月になるそうです。 長かったですね。

精進の方法について

諸々合わせると今まで AC した問題の数は 2200 問くらいだと思います。 これはどちらかというとかかった期間とレートの割には少ないんじゃないかなと思います。 理由としては、

  • 簡単な問題を解くこと(いわゆる虚無埋め)はコンテスト外ではほぼしていないこと
  • 極力解説を見ず自力で AC を得ることにこだわっていること
  • 比較的コンテスト外での精進量が少ないこと

だと考えられます。

特に自力ACについてはコンテストで解けなかった問題でも、Twitterなどでネタバレをできるだけ避けるなどしているのでかなり効いているのではないかと考えられます。 しかし、後述するようにこれについては最近緩めるようになってきました。

コンテスト外に精進するのは少ないですがその代わりAtCoderのコンテストはできるだけ出る、出れなくても早めにバチャをするようにしています。

いままでの振り返り

~水色 (rating ~1200)

競プロを始めたきっかけは数学の組み合わせの問題が得意で、競プロでは組み合わせがたくさん出ると聞いたからです。 高校生の頃から興味をもっていましたが受験があったので手を出せていませんでした。 大学入試が終るとすぐにやり始めました。 プログラミングにも以前からとても興味があったので楽しくてのめり込んでいきました。

数学オリンピックの経験や子供の頃から論理パズルが好きだったのが生きたのと昔は今と比較して高い Performance を出すことが難しくなかったこともあり、水色まではプログラミングの能力と4問制 ABC で出題される程度のアルゴリズムを身につけるだけで到達することができました。 競プロを始めてから3カ月くらいかかりました。(今だったらもっと時間がかかると思います)

おもにやったこととしては

だったと思います。(記憶にないだけでもっとやっている気もします)

~青色 (rating ~1600)

蟻本を買いました。 夏休みに免許を取りに地元に帰ったのですが、学科の待ち時間や家に帰ったあとは暇だったので蟻本を読み進めたりAtCoderの過去問を埋めていた記憶があります。 蟻本はフローの手前くらいまで進めました。 今でも水色までならここら辺までで十分な気がします。 codeforces も夏休みの終盤くらいに始めています。 夏休みはやや伸び悩んだのですが授業が始まったあとに伸びてくれました。 ちょうど大学の学園祭中に青になったのを覚えています。

~黄色 (rating ~2000)

このあたりは何していたかよく覚えていません。 コロナで暇になって codeforces にもよく出ていたみたいです。 たぶん ABC などで着実に力を伸ばしていたんだと思います。 始めて黄色になったのは2020年の5月、青になってから約半年のことでした。

~橙色 (rating ~2400)

ここからが長かったです。。。 青になってからは黄色と青色の境目を行ったり来たりしていました。 6月くらいからメンタルを崩し始めていたのもあったと思います。 競プロが余り面白くなくなりしばらく距離を置いたりもしました。*2 いろいろ休んでなんだかんだで9月くらいからはだいぶ元気になって、 ICPC に出て惜しいところまでいったり、good bye rng'58 Day2 で赤パフォを出したりしています。

このあたりで ABC-F 埋めをしています。 前述したとおり解説ACをしないのでどちらかというと典型の確認ですが良い練習になったと思います。 黄色レベルの実力は安定しました。

今年に入ってからは結構頑張ったみたいです。 特に ICPC のチームが決まってからは一緒にバチャを走ったり、チーム練で一緒に問題を解いたりしたのがとても効いたみたいです。 夏休みくらいに自力ACに限界を感じて ABC や codeforces の通常のコンテストについては解説AC を解禁しました。*3 これらによって典型力と実装力がかなりついて結果に繋がったのだと思います。

本当は橙になるために身につけた知識を列挙したかったのですが、やりだすときりがないので簡潔にまとめるだけにしておきます。

  • ABC で橙diff くらいまでの典型
  • Library checker で何ができるかを知っておく
  • 蟻本全体*4

主要なものはこれくらいで押さえられると思います。 これに加えてめんどくさい問題を解いて実装力を付けておくことも結構大事だった気がします。

これからについて

今年の夏休みくらいは橙まで頑張ったらしばらくして引退かな~とか思っていました。 でも ICPC で負けてしまってかなり悔しくなってしまったので、今は少なくとも何とか ICPC で国内予選を突破するまでは頑張りたいなと思っています。*5*6 まあ、なんだかんだ大学いる間は続けていく気もしますが。

今後の目標ですが、赤を目指すというのはあまり考えていません。 正直今の取り組み方で赤は厳しいと思っているし、そこまでの労力を割くほどの価値を見いだせないからです。*7 なので AtCoder のアルゴで色変するのはこれで最後だと思っています。 長々と自分語りをしているのもこのためですね。

代わりに、橙になったらやろうと思っていたこととして、いろいろと楽しい経験を与えてくれた競プロコミュニティに何らかの形で貢献していくことがあります。 自分にできるのは当面 W/T くらいしかないと思っているので、そのうち yukicoder とかで名前を見る機会が増えるかもしれません。 そのときはよろしくお願いします。

*1:ブログって普通自分語りをするところなんですね(たぶん)

*2:こうして書くとまるで恋愛みたいですね笑

*3:といいつつ今でもできるだけ自力で解くよう頑張ってしまっています

*4:本当は全部理解していません。ごめんなさい。

*5:AOJ-ICPC を埋めよう!

*6:研究を始めると気が変わるかも......?

*7:こんなこと言ってますが橙になるのに inf 年かかると思っていた時期がそこそこあったので赤もそのうち.......?