pitsuの記事置き場

色変記事や参加記などをまとめようかな-

AtCoder(緑)、codeforces(青)になりました

 

はじめに

こんにちは。

大学生で現在B2(もうすぐB3)のpitsuです。

 

2月中頃のコンテストでAtCoderが緑、codeforcesが青になったので色変記事を書こうかなと思います。(もう3月に入っているのですが...

役に立つとかそういうことを考えていないので、基本自分語りになると思います。

序盤は全然競プロに触れていないので読み飛ばして大丈夫です。というより読み飛ばしてください。

2/13のDiv2でcodeforcesが青に

2/16のABCでAtCoderが緑に

 

ここまでの経緯

競プロをはじめるきっかけ

去年の4月、B2に上がった頃に学部のオリエンテーションプログラミングコンテストに出ているサークル(HCPC)があると聞いたので教授にメールをしてサークルに参加させて頂きました。

そのときはプログラミングというものに全然触れたことがなく、入出力もできないまるっきりの初心者でした。

f:id:pitsu_kyopro:20200301013524p:plain

7月のICPC国内予選まで

そんな感じで初心者でしたが、サークルの方々の厚意でICPC予選に出場させていただけることになりました。

チームメンバーは今は二人とも青でとてもつよつよな人たちでした。

とてもアンバランスなチームでした。(完全に僕がお荷物なんですよね

チーム練でも本番でも役に立つことができず、本当に申し訳ない気持ちで一杯でした。

国内予選が終わった後、車校や定期試験、部活などを言い訳に全くと言っていいほど競プロをしませんでした。

f:id:pitsu_kyopro:20200301013739p:plain

11月まで

そんなモチベで夏休みに入り、夏休みも全く問題を解きませんでした。

見返してみるとコンテストも一回も出ていませんね。

後期に入り授業でプログラミングをまたやり始めたのもあり、少しずつコンテストに出て問題をやり始めました。

それでもそんなに精進って感じのことはしてないです。

f:id:pitsu_kyopro:20200301015444p:plain

11月

11月の中頃に自分にとって大きな出来事がありました。

ICPCの横浜大会です。

7月の国内予選を抜けた人たちの様子がTwitterが流れること流れること。

まあーーーーーーーー楽しそうなんですよね。

懇親会ではおいしそうな食べ物がでて、企業見学として水族館行ったり...。

羨ましすぎてストレスでした。

もういろんな方の参加記を読み漁りました。

そういう理由で、ICPCは学生しか出れないので今から頑張らないと出ることは不可能だと思ったので精進をし始めました。

あと、来年度自分はB3なので新卒枠がもらえるのでオンサイトも通常よりは狙いやすいんですよね。

そのチャンスを無駄にしたくなかったです。

f:id:pitsu_kyopro:20200301021906p:plain

12月

下の方にあるAtCoder Scoresのグラフを見てもらえるとわかると思いますが、12月はかなり問題を解きました。

正直異常精進らしきことをしていた気がします。

たぶんこの一か月に相当いろいろしてた気がするので記憶とTwitterを頼りにできる限り書いてみます。

12月の頭は螺旋本をとりあえず一周しました。

つまると無限に時間がかかると思ったのでわかんなかったところはすぐに飛ばしました。

それと並行してABCのC問題を埋め始めました。

AtCoder Virtualを利用してABCのC問題5問セットを作ったりしました。

画像見ればわかるんですが、一日に4セットしたりしてますね。

f:id:pitsu_kyopro:20200301025256p:plain

そんな感じで12/14日にC問題を埋め終わりました。

その後C問題埋めたはいいものの理解が出来ていないと思ったのでC問題の復習をしていたり、えびちゃんさん(サークルの先輩)におすすめしてもらったEDPCやChokudai Speed Runをやってました。

たぶんC問題のほとんどは2周したんじゃないかと思ってます。

C問題埋め終わりかけの時期からcodeforcesに参戦しました。

codeforcesは最初に1500レートが貰えるのを知らずに水色になって喜んでました。

その後しっかり緑に落ちました。

12月の頭までに解いた問題数がこれで

1/1までに解いた問題数がこれです。

12月最序盤を抜いても200問以上解いているので我ながら頑張ってるなぁと思いました。

f:id:pitsu_kyopro:20200301022658p:plain

その後

1月の序盤はC問題の復習をずっとやってました。

1月中頃から1月末まで、復習に飽きてきたのでcodeforcesのDiv3のバチャをほとんど毎日やりました。

サークルの先輩が作ったCodeforces Anytimeというサイトがバチャの結果で仮想のレートを計算してくれるのでモチベ維持によかったです。
codeforces-anytime.firebaseapp.com

f:id:pitsu_kyopro:20200301031746p:plain

2月に入り、春休みになったので安心して生活を破壊できたのでcodeforcesにできる限り参加しました。

Div3をたくさん解いたのが功を奏したのか2月に初めて出てコンテストで爆上がりしました。

そしてその次のコンテストで青になることができました。

そしてそのつぎのコンテストで水色に落ちました。

そして水色に落ちたコンテストの次の日のABCで緑になりました。

 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でいろんな人に絡みたいです。(これは頑張れ

でも冷静に話したことない人にリプするのめっちゃ難しくないですか?

人々どうやって仲良くなっているのか知りたい。

めんどくさがられたらどうしようとか考えるとできないので誰か絡みに来てください(他力本願

拙い文章でしたが最後まで読んで下さりありがとうございました。