memo46

競プロの精進記録その他。

AtCoder 黄色 になりました

競技プログラミングを開始して4年半、青になってからは2年半でようやく黄色になることが出来ました。

本当は次のARCで青落ちしてまた戻ってこれたらこの記事を書こうと思っていたのですが、時間が経過するごとに色々書きたいことを忘れそうなので忘れないうちに書くことにしました。

青〜黄になるまでにやったこと

大体時系列順に並んでいると思います。

CF バチャ

記憶が正しければ青になりたての頃に CF div2, ECR バチャをそこそこ高頻度でやっていました。

結論から言うと実力向上には間違いなく役に立ったのですが、upsolveをしっかりしないまま次のバチャを始めたりしていて効率の悪い精進になってしまっていたなぁと感じています。(結構他の方と一緒にバチャを走っていたのですが、upsolveをしっかりしつつ回数をこなしている方はすぐに実力を伸ばしていた印象があります。)

コンテストやバチャはしっかりupsolveをしなければ中々実力向上に与しないんだなぁと身を持って感じました。

ABC 黄・橙 diff 埋め

ABCの後半を解くのに不足した知識を埋めるために始めました。バチャのリンク

解説をガンガン開ける方針で埋めていきました。全然歯が立たずほぼ写経になってしまいそうなものは解説を読み込んでACはせずに放置して後で再挑戦する、みたいなことをしていました。

バチャの順位表を見れば分かる通り全部埋められていないんですが、これは効果があったような気がします。ただ非常に大変なのでモチベーション管理が難しいです。

コンテストに出るのをやめた(数ヶ月ぐらい)

学生最後のICPCで国内予選敗退して競プロを続ける理由を失った + あるゲーム*1が発売された ことを理由にコンテストに出るのを少しの期間辞めました。

元々青で停滞しているのに周りがどんどん黄色になっていく辛さで競プロへのモチベーションをかなり失っていました。しかし、ICPCがあるのでやめるわけにもいかない...という消極的な理由で続けていました。が、ついにICPCの参加権を失ったことで完全にモチベーションを失いました。

今だから言えるのですが、この選択は良かったと思っています。モチベーションがないのに無理やり続けていても精神を蝕むだけで何も良いことがありませんし、そんなんだったら別の楽しいことをやった方が良いです。ゲームはモチベーションが全てです。

ちなみに先程述べたあるゲームをしばらくやっていたのですが、アプデがまさかの3ヶ月来なかったので飽きが来たのと、オンサイトコンテスト*2 が開催されたことがきっかけで競プロを再開しました。

ライブラリ整備をちゃんとやるようになった

個人的に最近ABCの成績が良い理由の1つだと勝手に思っています。

ライブラリ整備は多くの人がやらなきゃと思いながらも「まぁいざとなったら人のライブラリを借りてくればいいだろ...」とサボるものだと思います。僕もそうでした。しかしこれをしっかりやっているのとやっていないのでは解くスピードに大きな差が出ます。現に、例えばABC294GではHL分解を知っていればやるだけなのにも関わらず、準備不足で解くのが遅くなったり解き切れなかった人をTwitterで多く見ました。

「○○はまだ勉強しなくてもいいだろう」みたいな考えで履修を先延ばしにするのはおすすめしません。

レートを気にするのを(なるべく)やめる

レートが下がるのが嫌という感情はとても分かるのですが、コンテスト中にレートを意識してしまいと要らない焦りを生んで解ける問題も解けなくなってしまいます。どうしても気になる人は predictor を消すなどすると良いと思います。(僕は結局消しませんでしたが...)

僕は「レートを上げる」ではなく「解けるべき問題を落とさない」ことを目標にコンテストに参加することにしています。

(2023/11/5 追記) 1600〜1800で沼っていた頃と比べて何が変わったか

ABCでの成績が安定し、ARCで青落ちしても黄色に戻れるようになってきました。 ここ最近、青で沼っていた頃の自分と今の自分で異なる点が分かって来たような気がするので書いてみます。

  • 青diff 以下をほぼ落とさなくなった
    • ジャンルに関わらずほとんど落とさなくなりました
    • 学生最強コンなどのARCチックなやつはまだまだ不安定です
  • 青diff 以下の問題の6, 7割ぐらいはスムーズに解法が出る
    • 早解き出来ることが多いです
  • 黄、橙diff の打率はそんなに変わってない
    • 難しい問題が解けるようになったわけではない気がします

つまり、ABCで大敗しなくなって(やらかしたと思ってもperf 1800〜1900ぐらいに収まる)、勝てる時は勝てる(2200〜2400 perf が出せる)ようになったのが黄色になれた要因かな、と思いました。

青diff 以下を落とさないためには、(意外性のない結論で申し訳無いですが)基本的な典型・知識の抜けがないかをひたすら点検する必要があるでしょう。

最後に

黄色になるまでやったことをつらつらと述べましたが、私が一番伝えたいのは「モチベーションは大切にすべし」です。

競プロはゲームですから、他のゲームと同様にモチベーションの維持が一番大切です。モチベーションを無視して無理にコンテストに出たり問題を解くのは(私の実体験に基づくと)むしろマイナスだと感じます。逆にモチベが高い時は、時間の許す限り問題を解きまくったりバチャをしまくったりコンテストに出まくりましょう。問題を解くのに飽きたら新しいデータ構造やアルゴリズムを履修してモチベを上げるのも良いですよね。

それでは楽しい競プロライフを(?)

おまけ:精進記録