AtCoder(緑)、codeforces(青)になりました
はじめに
こんにちは。
大学生で現在B2(もうすぐB3)のpitsuです。
2月中頃のコンテストでAtCoderが緑、codeforcesが青になったので色変記事を書こうかなと思います。(もう3月に入っているのですが...
役に立つとかそういうことを考えていないので、基本自分語りになると思います。
序盤は全然競プロに触れていないので読み飛ばして大丈夫です。というより読み飛ばしてください。
2/13のDiv2でcodeforcesが青に
codeforces青になりました!!!!!!!!
— pitsu (@pitsu_kyo_pro) 2020年2月14日
AtCoder茶、codeforces青は珍しくないですか??? pic.twitter.com/koF43H3b7x
2/16のABCでAtCoderが緑に
速解きで緑になって嬉しいですか?私は嬉しいです! pic.twitter.com/zvKg0eCnxr
— pitsu (@pitsu_kyo_pro) 2020年2月16日
ここまでの経緯
競プロをはじめるきっかけ
去年の4月、B2に上がった頃に学部のオリエンテーションでプログラミングコンテストに出ているサークル(HCPC)があると聞いたので教授にメールをしてサークルに参加させて頂きました。
そのときはプログラミングというものに全然触れたことがなく、入出力もできないまるっきりの初心者でした。
7月のICPC国内予選まで
そんな感じで初心者でしたが、サークルの方々の厚意でICPC予選に出場させていただけることになりました。
チームメンバーは今は二人とも青でとてもつよつよな人たちでした。
とてもアンバランスなチームでした。(完全に僕がお荷物なんですよね
チーム練でも本番でも役に立つことができず、本当に申し訳ない気持ちで一杯でした。
国内予選が終わった後、車校や定期試験、部活などを言い訳に全くと言っていいほど競プロをしませんでした。
11月まで
そんなモチベで夏休みに入り、夏休みも全く問題を解きませんでした。
見返してみるとコンテストも一回も出ていませんね。
後期に入り授業でプログラミングをまたやり始めたのもあり、少しずつコンテストに出て問題をやり始めました。
それでもそんなに精進って感じのことはしてないです。
11月
11月の中頃に自分にとって大きな出来事がありました。
ICPCの横浜大会です。
7月の国内予選を抜けた人たちの様子がTwitterが流れること流れること。
まあーーーーーーーー楽しそうなんですよね。
懇親会ではおいしそうな食べ物がでて、企業見学として水族館行ったり...。
羨ましすぎてストレスでした。
もういろんな方の参加記を読み漁りました。
そういう理由で、ICPCは学生しか出れないので今から頑張らないと出ることは不可能だと思ったので精進をし始めました。
あと、来年度自分はB3なので新卒枠がもらえるのでオンサイトも通常よりは狙いやすいんですよね。
そのチャンスを無駄にしたくなかったです。
12月
下の方にあるAtCoder Scoresのグラフを見てもらえるとわかると思いますが、12月はかなり問題を解きました。
正直異常精進らしきことをしていた気がします。
たぶんこの一か月に相当いろいろしてた気がするので記憶とTwitterを頼りにできる限り書いてみます。
12月の頭は螺旋本をとりあえず一周しました。
つまると無限に時間がかかると思ったのでわかんなかったところはすぐに飛ばしました。
それと並行してABCのC問題を埋め始めました。
AtCoder Virtualを利用してABCのC問題5問セットを作ったりしました。
画像見ればわかるんですが、一日に4セットしたりしてますね。
そんな感じで12/14日にC問題を埋め終わりました。
ABCのC埋め、PASTまでに間に合ったーー! pic.twitter.com/Q3q00pwNe0
— pitsu (@pitsu_kyo_pro) 2019年12月14日
その後C問題埋めたはいいものの理解が出来ていないと思ったのでC問題の復習をしていたり、えびちゃんさん(サークルの先輩)におすすめしてもらったEDPCやChokudai Speed Runをやってました。
たぶんC問題のほとんどは2周したんじゃないかと思ってます。
C問題埋め終わりかけの時期からcodeforcesに参戦しました。
codeforcesは最初に1500レートが貰えるのを知らずに水色になって喜んでました。
その後しっかり緑に落ちました。
水色〜(コドフォのレート感がわかってない pic.twitter.com/TZHx7cGcR4
— pitsu (@pitsu_kyo_pro) 2019年12月13日
12月の頭までに解いた問題数がこれで
精進が足りてない
— pitsu (@pitsu_kyo_pro) 2019年12月5日
Solved By pitsu
TopCoder: 0
CodeForces: 0
AtCoder: 274
AOJ: 3
yukicoder: 0
Sum: 277
https://t.co/LLO2WYYoOh
1/1までに解いた問題数がこれです。
今年はしっかり競プロやっていきたい
— pitsu (@pitsu_kyo_pro) 2019年12月31日
1/1
Solved By pitsu
TopCoder: 0
CodeForces: 37
AtCoder: 444
AOJ: 3
yukicoder: 4
Sum: 488
https://t.co/RaKsv3dAit
12月最序盤を抜いても200問以上解いているので我ながら頑張ってるなぁと思いました。
その後
1月の序盤はC問題の復習をずっとやってました。
1月中頃から1月末まで、復習に飽きてきたのでcodeforcesのDiv3のバチャをほとんど毎日やりました。
サークルの先輩が作ったCodeforces Anytimeというサイトがバチャの結果で仮想のレートを計算してくれるのでモチベ維持によかったです。
codeforces-anytime.firebaseapp.com
2月に入り、春休みになったので安心して生活を破壊できたのでcodeforcesにできる限り参加しました。
Div3をたくさん解いたのが功を奏したのか2月に初めて出てコンテストで爆上がりしました。
うおおおおおおおおお!!!
— pitsu (@pitsu_kyo_pro) 2020年2月13日
やっとHighestを超えることができてうれしい!!! pic.twitter.com/nGvFJYF6Qk
そしてその次のコンテストで青になることができました。
codeforces青になりました!!!!!!!!
— pitsu (@pitsu_kyo_pro) 2020年2月14日
AtCoder茶、codeforces青は珍しくないですか??? pic.twitter.com/koF43H3b7x
そしてそのつぎのコンテストで水色に落ちました。
にゃん... pic.twitter.com/U7TmnJrNUM
— pitsu (@pitsu_kyo_pro) 2020年2月16日
そして水色に落ちたコンテストの次の日のABCで緑になりました。
速解きで緑になって嬉しいですか?私は嬉しいです! pic.twitter.com/zvKg0eCnxr
— pitsu (@pitsu_kyo_pro) 2020年2月16日
12月の精進に結果が伴った気がしてすごいうれしかったです。
〇〇になるまでに必要なこと
ここから先に書いてあることは完全に個人的な見解です。
茶色まで(AtCoder)
このアルゴリズムが必要というよりはC++であればmapやsetなどのSTLを適切に使える能力が必要だと思います。
そして、灰色difficultyの問題を見た瞬間に何をするかわかるようになれればいいと思います。
つまり、灰色difficulty(余裕があれば茶色difficulty)の問題をたくさん解けばいいと思います。
下手にアルゴリズムに手を出してもわかんないことが多すぎて全然進まないと思います。(経験談
緑まで(AtCoder)
緑になるためにはある程度のアルゴリズムの知識が必要だと思います。
でもそれも累積和やDFSなどのABCのC問題で要求されるもの程度でDPなどはまだやらなくていいのかなーと思っています。
そのアルゴリズムを身に着けるためには茶色difficulty(余裕があれば緑difficulty)の問題をたくさん解けばいいと思います。
これ自分は螺旋本一周してるのにそう言ってるのはおかしくないかとか思ったんですけど、緑になるまで螺旋本で得た知識を使った記憶があまりないんですよね。
水色まで(codeforces)
codeforcesは初期で1500(水色の真ん中)もらえるので最初から水色です。
つまり、参加すれば水色になれます()
しかし、問題が解けなければ当然下がり続けるので結構メンタルにきます。
なので緑になるまで、またはABCのCを埋めるまではやらなくていいと思います。
青まで(codeforces)
codeforces青になるまで必要なことはたくさんコンテストに出て英語の問題に慣れることだと思います。
codeforcesは典型問題がたくさん出るといわれがちですが、自分はとくにそういった印象は受けなかったです(解いていない高難易度帯の問題がそうなってるのかもしれないです
なので知識で殴る系の問題ではなくしっかり考察すれば解ける問題が多い気がします。
その考察力を身に着けるためにはたくさん問題を解くといいと思います。
Div3が3,4問解けることが多くて楽しいのでおすすめです。
まとめ
はい、ざっくりまとめるとたくさん問題を解いたらレートが上がったよという感じです。
自分が感じたことですが、AtCoderはアルゴリズム知ってるだけで解ける問題はあまり出題されていない気がします。
そのアルゴリズムを理解してて応用されても解けるといったレベルにならないとそのアルゴリズムを使う問題は解けないようになってるなーと思ってます。
なのでアルゴリズムを勉強しててもレートに直結することは少ないのかなと思います。
そういうわけで灰色、茶色の人はアルゴリズムの勉強に手を出すより、過去問をたくさん解くのがよさそうと思ってます。
あと速解きができるとなりたい色のdifficultyの問題が解けなくてもその色のパフォーマンスが出ます。
なのでその色の問題が解けるようになるより、今自分がいる色の問題を速解きできる能力があるとレートが安定していいと思います。
速解きをするためにはたくさん問題を解くと(ry
まあこれは自分がそうやってきてうまくいったからそう思うだけで向き不向きは必ずあるので真に受けないでください。
今後
今後はAtCoderの400点問題を埋めたり、codeforcesでバチャをしたりしようかなーと思ってます。
バチャをしているとき一人で寂しいのでバチャをするときはTwitterで呼びかけてるので一緒にバチャをしてくれる人を募集しています。
あとはTwitterでいろんな人に絡みたいです。(これは頑張れ
でも冷静に話したことない人にリプするのめっちゃ難しくないですか?
人々どうやって仲良くなっているのか知りたい。
めんどくさがられたらどうしようとか考えるとできないので誰か絡みに来てください(他力本願
拙い文章でしたが最後まで読んで下さりありがとうございました。