【AtCoder】Re:レート4から始める灰色脱出

 タイトルの通りです。長い苦節の末、ようやく茶色になれたので書きます。

 

f:id:sdyui:20200915223545p:plain

 

ターゲット

  • やる気はあるけど灰色で燻っている人
  • 茶色にはなりたいけど心が折れそうな人

具体的に何をしたのか?

  • AtCoder Problemsにおける灰diffおよび100,200点問題をすべてAC(解答AC含む)
  • 茶diffのうち70問程度をAC(解答AC含む)

結局何をすればいいのか

 初心者の人はまずコンテストに出てみようとよく言われますが、出てみた結果A問題しかACできなかったり、B問題を解くのが精いっぱいで思ったようなパフォーマンスが出なかったりすることがあります。その結果レートが上がらず、心が折れてしまう人もいると思います。自分も数度心が折れました。

 このため、数回コンテストに出てみて思ったような結果が出ないときは、一度過去問を解いたり勉強したりすることに専念してみることをお勧めします。数回参加することでレーティング計算における下降補正を緩和し、できないことを明確にしたうえで再スタートしてみましょう。

 経験上、”できないこと”はだいたい以下のパターンに分類できると思います。

 ※以下の問題はすべてABCにおける問題を指しています。

  • A問題が解けない
  • B問題が解けない
  • C問題が解けない
  • やりたいことはわかるけど実装ができない

  A問題が解けない場合

 10~20問過去問を解いて慣れましょう。そもそもわからない場合は、まず入出力の練習から始めましょう。

 B問題が解けない場合

 自分はここで苦労しました。新しい回からでいいので、できるだけ多くこなすと慣れてきて多くの問題をすんなりACできるようになります。わからないときは、あまり長く考える必要はないと思います。その時は解説や他人のコードを見て勉強しましょう。

 C問題が解けない場合

 自分はここでも苦労しました。できるだけ問題数をこなすと良いですが、B問題より多くの問題をこなしましょう。実装ができない場合にもつながりますが、わからないからといってすぐに解説を見るのではなく、少し考えた上で解説を見るようにしましょう。

 実装ができない場合

 これの主な原因は練習不足か知識不足だと思います。もちろんできるだけ多く問題をこなすことも重要ですが、典型的な問題に関しては何度か復習することが大事だと思います。

 また、D問題のうち茶diffのものでC問題が難しかった回のものはやっておくと良いです。

 最近のコンテストは参加者のレベルが上がっている印象を受けるので、我々はC問題を解く速度で茶色になれるかどうかが決まってきます。そのため、C問題を高確率で通せる実力をつける必要があります。

 また、C難D易のときはDを通せるかどうかも重要で、C難D難のときはABの早解きで我々のパフォーマンスが決まってくるので、AやB問題を高速かつ正確にACする力もつける必要があります。

 パフォーマンスが毎回400ぴったりのような感じだと、茶色に近づくにつれて上昇幅が小さいのに爆死するとレートが大きく下がる可能性があるので、目安としてはだいたい600弱くらいのパフォーマンスを目標にすると茶色に上がれると思います。

 問題をこなすうえで、自分の実力と同程度以上の問題は通すのが難しいと感じることが多いため、めげずに頑張りましょう。

あると便利なもの

  いい感じのサイズ感で問題の考察に使いやすいです。おすすめです。

  • 剰余、集合、論理式についての知識

やってよかったこと

  • APG4batcoder.jpほぼ全部やったと思いますが、EX問題は難しいものもあるので自力ACに固執する必要はないと思います。

 

  • こちらに載っているガイドラインすべて

    qiita.com特に、AOJのやつは基礎が身につくのでお勧めです。

  • こちらに載っている問題ほぼすべて

    qiita.com非常にためになるので何回か復習するとよいです。問題とソースコードを覚えるくらいまでやるといいと思います。

使えるとよい知識

  • bit全探索(ABC173-Cなど)
  • Union-Find(ABC177-Dなど)
  • 簡単なDP

最後に

 ここまで読んでいただきありがとうございました。

 これを読んで少しでも茶色になるための勇気が湧いてくれたなら幸いです。

 頑張っていきましょう!