(Qiita より転載)

はじめに

私は今回のABC453でレーティングが茶色に到達しました。記事投稿の練習もかねて、入茶までにしたことをまとめましたので、拙文で恐縮ですがぜひ参考にしていただければと思います。

自己紹介

現在中学2年生です。競技プログラミングは中1の2月に始めました。比較的得意な教科は国語で、数学はある程度できますが得意なわけではありません。

AtCoderマイページはこちら

現状

入茶時 (ABC453終了時) のレーティングです。 スクリーンショット 2026-04-12 164807.png


パフォーマンスの寄与度です。 pnHPOcbppAAAAAICTREAHAAAAAMAFvE4.jpg


ABC過去問の取り組み状況です。 スクリーンショット 2026-04-12 205249.png

入茶までにしたこと

主にしたことは、

  1. 言語の習得
  2. 過去問の取り組み
  3. アルゴリズムの習得 の3つです。それぞれ詳しく説明します。

言語の習得

学習する言語はC++を選択しました。理由はAPG4bで競技プログラミングに使用する言語としておすすめされていたからです。A問題やB問題の早解きに役立つかと思ってPythonにも手を付けてみましたが、C++を学んだあとではコードが理解できず、結局現在もC++を使っています。

AtCoder Programming Guide for beginners (APG4b)

AtCoderが提供している学習コンテンツで、C++/Pythonについて非常にわかりやすく解説されています。私はC++版に取り組みました。ただ、第3章以降の内容は難解だったために3.03.STLのコンテナまでをやって次に移りました。この単元は非常に重要なので、これ以前で読むのを中断した人も、目を通すと良いでしょう。

過去問精選10問

APG4bを途中まで読んだら、APG4bと同時並行でけんちょんさんが書いた次の記事を読みました。

AtCoder に登録したら次にやること ~ これだけ解けば十分闘える!過去問精選 10 問 ~

初めはまったく解けませんでしたので、ほとんどの問題で解説を先に読みました。この記事では、最も基礎的なアルゴリズムである全探索を学ぶことができました。全探索はABCのB問題で頻出なので、最初に学ぶべきアルゴリズムといえます。私が初参加したコンテストであるABC444でもB問題に全探索を使うものが出ましたので、正解することができました。

過去問の取り組み

自分はABC212 (8問制の開始) 以降のB問題と簡単なC問題をひたすら解いていました。数分考えても解法が分からないときは解説動画を見ていました。C問題を解けるようになるのにかなり苦労しましたが、何問も解いていると簡単なものなら解けるようになりました。始めたばかりのうちは、とにかく問題になれることが重要だと思います。

難易度の参考にしていたのはAtCoder Problemsで、コンテスト中の提出者から難易度が推定されています1。ただ、実際に解く際の難易度とは必ずしも合致しないため、問題内容からグレードをつけているAtCoder Novistepsを利用する方が良いかもしれません。

始めたときは、多いときで15問程度、解かない日もありましたが、春休みに入って1日10問を解くことにして取り組んだため一気に取り組み量が増えました。現在はC問題と簡単なD問題を埋めています。

解いた問題はExcelに記録していて、解いた日、AtCoder ProblemsのDifficulty、解法と検索用のキーワードをまとめています。

▽Excelシートの一部 スクリーンショット 2026-04-12 174305.png

アルゴリズムの習得

ABCのC問題以降を解くには全探索より効率的なアルゴリズムを学ぶ必要があります。私は米田優峻さん (AtCoder:E869120) の『競技プログラミングの鉄則』(鉄則本)という書籍を購入して読み進めました。図が多くてわかりやすく、二分探索からダイクストラ法まで幅広いアルゴリズムを扱っていて、アルゴリズムを習得するならおそらくこの本が最適でしょう。

購入を検討している方は、こちらで一部が公開されているため、目を通してみましょう。

現在習得したアルゴリズムを挙げます。(使いこなせるというわけではないです)

  • 全探索・順列全探索・bit全探索
  • 累積和・いもす法
  • 二分探索・答えで二分探索
  • ナップザックDP・LCS・区間DP・bitDP
  • DFS・BFS・ダイクストラ法・Union-Find
  • ランレングス圧縮

使用したツール

Comfortable Atcoder

chrome拡張機能で、提出結果を通知する機能があり、コンテスト中に非常に便利なので愛用しています。(2026/4現在は利用できますが、今後利用できなくなる可能性があります。)

(2025/4/13追記)新規のインストールはできないようです。代替として、拡張機能のTampermonkeyをインストールし、ユーザースクリプトのAtCoderResultNotifierを入れると提出結果の通知が利用できるようです。

(2026/4/26追記)Chromeでは新規のインストールができないことを確認しました。Chrome系ブラウザのひとつであるEdge/Vivaldiでは新規のインストールができることを確認しました。

AtCoder Rating Estimator

パフォーマンスとレート変動の関係をグラフにするツールです。私はコンテスト前に確認して参考にしています。

AtCoder Graphs

レートにどのコンテストのパフォーマンスがどれだけ影響しているかをグラフにします。

OBS Studio

配信などにもよく用いられているフリーソフトです。私はコンテスト中のブラウザとエディタを録画し、コンテスト終了後に見返して参考にしています。

おわりに

お読みいただきありがとうございました。これからもより高いレートを目指して精進しようと思っています。誤りの指摘もお願いいたします。

(2026/8/10追記) 入緑しましたのでぜひこちらも合わせてお読みください。

AtCoderで入緑しました!

  1. こちらの記事に詳しい記述があります。 ↩