AtCoder茶色になりました

9月に開催されたAGC027でAtCoder茶色になったのでそれについてだらだら書きます。

現在の状況

茶色になってから結構時間が経っているため、現在のレートはこんな感じ。
f:id:eclair1024_sub:20181107035454j:plain
今は完全に茶色ど真ん中の人間ってところです。
是非ABCで3完してレートを単調増加させたい。

主にやったこと

ここからは自分のTwitterと記憶を頼りにだらだら自分語りをします。

ですが結論としてやったことは

  • AtCoder ProblemsのABC-A,B問題をひたすら解く
  • (余裕があれば)yukicoder★1も解く
  • しっかりとコンテストに参加する(ここが一番重要

の3つです。
ここからはだらだらと緩く書いていきます。

茶色への歩み

最初の頃

競技プログラミングを始める前の私は大学の講義でしかプログラミングを触らないという生活を送っていました。
そんな時、何か始めようと思いそこでyukicoderを触れていました。
高速バスでの移動中も携帯から強引にソースコードを提出するなどを行い★1の問題を埋めていました。

ちなみにこの頃の使用言語はCでしたが、後にサークルのC++講座*1を受講することにより使用言語がC++となります。

初のコンテスト参加(ABC098)

音楽ゲームを普段からやっていたため、レートという単語に惹かれてコンテストに参加し始めます。
こうして、5月下旬に出たABC098が初のコンテストでした。


ちなみにこの時の結果は1完でした。
初めて出たコンテストでB問題の中でも最難関のB - Cut and Countが来るのは聞いてませんよ…

こうして、緩くですが私のコンテスト生活が始まります。

A,B問題埋め

そして1か月の間にABCに3回ほど参加した結果、A,B問題の安定度を上げれば茶色レートになれるのではないかということに気づき始めます。
この日からAtCoder Problemsの過去のA,B問題をひたすら解き始めます。
ちなみにこの頃は1日最低3問、A問題のみだと最大20問ぐらい解いていた記憶があります。


他所でも言及されている点ですが、このAtcoder ProblemsでA,B問題を解く際に個人的には

  • 他の人のコードを見て良い点を盗み、自分の知識を蓄える
  • 解法が思い浮かばなかったらずっと悩みこまずに解説を見る

ということを意識していました。
私は15~30分ぐらい頭を抱えて解説を見る、といった感覚で行っていました。

また、最初の頃は以下の画像のように200点問題に絞り込んでsolver順*2に並び替えて順番に解くということもしていました。
この方法を用いると比較的簡単な問題から解き始めることが出来るので、突然難しい問題に当たり気が落ち込むということが減ります。
f:id:eclair1024_sub:20181107061055j:plain


こうした所謂、小さな"精進"はすぐに結果に現れてABC102ではA,B問題を5分で解き初めての緑レート相当のPaformance*3を出します。
(もちろん、この"精進"による結果が表れる時期も個人差もあります…)


ちなみに、ちょうどこの時期はサークルの先輩からの嬉しいお誘いもありACM/ICPCへの参加の方もしました。
結果や内容についての小話は別の記事にまとめてあるので是非。
ACM-ICPC2018国内予選大会に出た話 - eclair1024_sub’s diary


茶色が見え始める

こうしてA,B問題を解いていると茶色レートまで手が届く位置まで来ました。

ですが、ここで迎えたABC108にて数学要素が強めな回、所謂"数学回"というのが来ます。
AtCoder Beginner Contest 108 - AtCoder
私は数学はどちらかというと好きではあるものの、全く得意ではないのでここで1完をしてしまい1度レートが落ちます。


また、この頃の私はRatedのコンテストしか自分の視野に入っていない、"Rated中毒者"となっていたためRatedではないことが多い企業主催のコンテストは参加していませんでした。
そのため、場数も少なくコンテスト中の焦りから普段しないような、よくわからないミスが出てきます。
場数を踏む、経験を積む等他にもメリットが沢山有ったので参加しておくべきだと痛感しています。

茶色になる

こうして色々ありつつもAGC027(AtCoder Grand Contest 027 - AtCoder)で1完して、ついに茶色になります。
やはり、AGCでのレートの爆発力は侮ってはいけません。

ちなみにAGCは自分が精進を始めた段階でも1度あったので参加しておけばよかったと後悔しました。

今後の目標

今後は緑レートを目標にABCでA,B,C問題の3完を目指します。
目標はC問題を1日1問以上コツコツとやることです。


おわりに

ここまで読んでくださっている方へ、ありがとうございます。
自分にしか書けない記事、を目標に記事を書いた結果ほとんどが自分語りとなってしまいました。
もしご期待を裏切っていましたら、申し訳ございません。この記事がこれから頑張ろうと思っている方に少しでも参考になったらと思います。

*1:内容はほぼオブジェクト指向の内容でC++STLなどはほぼ自習でした…

*2:解いた人が多い順

*3:これがレートの決定に直結します