rng_58がおすすめする練習の仕方 - 茶色になるために

「rng_58がおすすめする練習の仕方」シリーズでは、AtCoderでadminを務めていたrng_58(りんごさん)のおすすめする様々な練習方法をお伝えします。

このシリーズでおすすめする方法は、すべてのユーザに適用できるものではない可能性があります。あくまで一例として参考にしてください。

概要

レーティングを茶色にあげるために必要なことは、プログラミング能力のみです。高度なアルゴリズムや計算量の概念は関係ありません。

問題文に書かれた通りの実装を、すばやく正確にできるようになることが必要です。この実装は長くても20-30行程度で済みます。

そのためには、for , if, while, 配列, vector, string, 関数の使い方など、基本的なことを組み合わせて使うことに慣れましょう。

プログラミング言語についての知識は、競技プログラミングで必要な範囲さえあれば問題ありません。レーティングが高くても競技プログラミングしか出来ないという人もたくさんいます。

ただし、ビット演算等の競技プログラミングとして有用な文法は確認しておくことをおすすめします。

ABCの序盤では、今後のために実装ではまりがちなポイント(オーバーフローまわり、誤差、あまり演算の使い方など)をまとめています。

扱う題材

茶色になるために使うおすすめの問題は、比較的最近のABC-A, B です。(8問体制のもの、具体的にはABC212以降)

量がもっと欲しい場合は、Codeforcesで implementation タグのついているもののうち、簡単なものからやっていくのもよいでしょう。

新しい問題である必要はありません。同じ問題でも、やりたいことがスムーズにプログラミングできるように慣れるまで繰り返し解きましょう。

解き方

慣れるまでは使用しているプログラミング言語のチートシートを作成し、それを見ながらコーディングしましょう。

特に覚えることを意識しなくても、量をこなしていれば自然とチートシートを参照しなくても出来るようになり、スピードも上がってきます。

わからない部分があれば、すぐに解説を見ても構いません。極端な話、はじめから解説を読みながらコーディングする、という方法でもよいでしょう。

競技プログラミング的に楽な実装方法が身につくので、レーティングが高い人の実装を参考にしてください。

レーティングが高い人はC++を使用していることが多いので、こだわりがない場合はC++がおすすめです。

同じ問題を何度解いても構いませんので、質より量を重視してたくさん解いてプログラミングに慣れましょう。

どのぐらいのdiffが解ければよいか

diffを気にするより前に、純粋な20-30行程度の実装問題や、 以下の記事で触れた算数を前提にした問題をスムーズに詰まることなく解けるようになれば十分です。

rng_58がおすすめする練習の仕方 - はじめに - AtCoderInfo

問題を解くリズム

とにかく大量に、すばやく解きましょう。

解説を見るタイミング

はじめから見ても構いません。

必要とされる知識

競技プログラミングで必要なプログラミング言語の知識のみです。