AtCoder 橙/Codeforces IGMになりました

はじめに

両者とも人生最後の上方向の色変になる可能性があるので書きます。今まで色変記事は書いたことがなかったので、黄->橙というよりは今までにやったことを振り返る感じです。

うれしい!

うれしい!

精進・コンテスト参加

全体

Solved (全体)

AtCoder

レーティング遷移 (AtCoder)

2019年10月にAtCoderに初めて参加しました。青になるまではかなり順調だったんですが、そこから先でかなり苦労しました。今年1月に2371を踏んだ時はこのまま橙になれるかなと思っていましたが、このあとかなりグダグダして半年以上かかりました。

AtCoderに関しては、始めてから現在までABC/ARC/AGCはほとんど全て参加しています。

Solved (AtCoder)

Rated

AtCoderでの精進は↑の通りです。Ratedを中心に結構埋めたと思います (水・青は100%、黄・橙は1問欠け、赤↑は4割と少し)。Streakを繋ぐのは苦手なので意識してやったことはほとんどありません。試験管の問題に関しては、解いていて苦な問題もありますが面白い問題もたくさんあるという印象です。

Unratedコンの問題は全然埋められていないので、その辺りも今後手を出すかもしれません (CF Div.1の方が優先度は高いかも)。

参考までに、ABC/ARC/AGCの埋め具合を貼っておきます。画像がかなり縦に長いので注意してください。

ABCの埋め具合 画像の縦の長さに制限があるみたいなので分割しています。
8問時代 Gは埋めるとしてH/Exも埋めたいんですが、単純に難易度が高くて埋まりません。ABCなので解けないなら解説open推奨なのかな。
Solved (ABC 8問時代)
6問時代
Solved (ABC 6問時代)
4問時代 Dで唯一解けてないのは D - 25個の整数 です。また今度通したい
Solved (ABC 4問時代)

ARCの埋め具合 6問になってからのFはほとんど手が出てません。最近は全然復習できていないので、やっていきたいです
Solved (ARC)

ACCの埋め具合 後半の問題も古いものであれば比較的手が出やすい印象です
Solved (AGC)

Codeforces

レーティング遷移 (Codeforces)

私は競技を始めた当初はJavaを使っており、CodeforcesはTLが厳しいがちだという噂を聞いていたので中々参加できていませんでした *1。ただ、ICPCに参加するにあたってチームメイトが2人ともC++使いだったこともありC++への乗り換えを本格的に始めていたので、2021年4月にようやくCodeforcesに手を出しました。この頃はAtCoder 2000-2100の所謂 "黄溜まり" でさまよっていた頃で、刺激が欲しかったというのもあります *2

同年6月にGrandmaster (薄赤)になったまでは良かったんですが、それから5ヶ月ほどサボってしまい、また11月頃に復帰して今に至るという感じです。時間帯の問題もあってDiv.1すら毎回参加とはいかないんですが、ほどほどに参加しています。

Solved (Codeforces)

Codeforcesでの精進は↑の通りです。そこそこの問題数を解いているように見えますがこれは過去のDiv.3埋めが大きく寄与していて、実はDiv.1に関してはほとんど埋められていません。最近はECRを埋めたりしていますが、そろそろDiv.1から逃げるのをやめないとなぁと思っています。

CodeChef

今年7月に初めて参加して4回コンテストに参加しただけです。この4回に限った印象としては特に悪い印象はなく、問題も面白かったです。

ライブラリ整備について

suisen-cp.github.io

↑は私の競技用ライブラリです。結構量が多い方だと思いますが、あまり他の方のライブラリを見たことがないのでそうでもないかもしれません。

ライブラリ整備が好きなのでLibrary Checkerなんかもそこそこ埋めているんですが、レートに直結している感覚はありません。特にAtCoderに関しては、ARC以上 (特にAGC) では「考察 >> (ライブラリを含む) 実装」な問題を選んで出しているというような内容を含むこどふぉブログを読んだことがある気がします (ソースは忘れました)。Codeforcesに関しては、例えばHLDなんかはそこそこの頻度で貼っているので、基本的なものに関しては役に立っていそうです。

言語の変更について

Codeforcesのところでも言及したんですが、2021年4月~5月ごろを境にメインで使用する言語をJavaからC++へと変更しました。当初は

  • Javaで書いた大量のライブラリを捨てるのが勿体ない
  • 新しい言語で最低限必要なライブラリを準備しないといけない
  • そもそも言語を覚えないといけないので、一時的にパフォーマンスが落ちるかも

みたいなことを考えて足踏みをしていましたが、1つ目に関しては単なる気分の問題なので良いとして、2つ目に関してはAtCoder Libraryが導入されたこと、3つ目に関してはAtCoderが考察>>実装な問題を好むということで、思ったより障壁は小さかったという印象です。

おわりに

書きたいことがあまり思い浮かばなかったので淡白になってしまいました。何か気になることがあれば聞いてもらえれば追記するかもしれません。

*1:これは私が勝手に足踏みしていただけで、JavaPythonCodeforcesに参加している人も一定数います。参加を推奨しないということではありません。

*2:レーティングシステムの性質なのか、Codeforcesではレートが乱高下しやすいので刺激は十分に得られると思います。