AtCoder黄色になりました

2024-12-24

はじめに

jack アドベントカレンダー 2024 の24日目の記事です.

クリスマスイブということで,競プロの話です.

jackはアプリ開発団体ですが,僕はアプリ開発ではなく,競プロばかりしています.

その甲斐あって,先日の ABC380 にて,念願の黄色コーダーに到達しました.

今回は入黄記事として,今までの精進を振り返ろうと思います.

自己紹介

  • AtCoder: https://atcoder.jp/users/hirakuuuu
  • 情報系のB4
  • プログラミングは大学に入ってから始めました
  • 競プロ歴はB1の夏に始めたので,3年半くらいです
  • 言語はずっと C++ です(ただ,競プロ以外では使ってないです)
  • 研究室ではグラフアルゴリズムに関連したことをやっています

精進の記録

全部で 2200 問くらい解きました.何かの記事で 3000 問解けば黄色になれるみたいなことが書いてあった気がするので,それより少なく済んでよかったです.

精進は基本的に atcoder problems のおすすめ問題の difficult を1日1問のペースで埋めてました.だいたい今の色の一色上の問題が出ます .緑~黄色の問題はだいたい75%くらい埋めました.そろえたわけではないですが,同じくらいになってます.

水色になるまで

はじめてから8カ月くらい(2021/08~2022/04)で水色になりました.

水色になるまでにやったものです.

  • APG4B
      • C++の勉強はこれでやりました
  • 精選100問
      • 最初にやる問題集はこれが一番おすすめです
      • 基本的なアルゴリズムが例題とともに網羅されています
  • 典型90
      • 最初から順番にやろうとして,1問目で挫折しました
      • 難易度順に取り組むのをおすすめします
      • typical90_extension という拡張機能で難易度順の並び替えができます
  • 蟻本
      • これも難しすぎて挫折しました
  • ABCの過去問をひたすら埋める
      • 1日1問解いて,サークルの slack に投稿してました
      • 数人が一緒にやってくれてたのですが,気づいたら僕だけになってました

最初の方は色んなものに手を付けて挫折するが多かったです.自分に合ったものを見つけるためには必要な過程だとは思います.

また,このときはライブラリとかは特に整備してませんでした.比較的簡単めなアルゴリズムやデータ構造(ダイクストラ,Union-Find など)は毎回空で書いてました.(今はライブラリからコピペしてます,空で書けるかは怪しいです…)

青になるまで

水色になってから1年ちょい(2022/04 ~ 2023/05)で青になりました.

青になるまでにやったものです.

  • 典型90
      • 星5以下(水色相当)の問題を順番に埋めて,途中で挫折するを繰り返していました
  • EDPC
      • P問題まで埋めてました
      • これで割とDPが得意になった気がしてます
  • 鉄則本
      • 話題になってたので購入
      • AtCoderに問題があるのがとてもうれしい
      • 全体的に易しめなので,水色になるまでのときにやりたかった一冊です
  • 青 diff 埋め
      • 1日1問のペースで解いてました
  • ライブラリ整備
      • 問題を解いて出会ったものをまとめるという感じでやってました
      • 自分の場合アルゴリズムを単体で勉強しても、具体的な使い方が分からないと本番で使えなかったので,出会ったときに学ぶようにしていました
      • ac-library を使い始めたのもこの時期です(抽象化のすばらしさに気づく)

水色までと比べると,水色から青はかなり停滞しました.停滞したときは,パフォーマンスの下限を上げるのが大事だと思います.特に,自分の今の色以下の問題は確実に通せるとパフォが安定するので,このときは青に加え緑・水も埋めるようにしてました.

ただ,上がるタイミングはよく分からないです.数カ月精進をさぼってたのに,取ったことない黄パフォを2連続で取って入青したので,毎日頑張ってたのは何だったんだという気持ちになりました.

また,2023年はICPCで横浜まで行けたのがうれしかったです(参加記).今年は予選落ちしてしまいましたが,来年はラストなので頑張りたいです.

黄色になるまで

青になってから1年半(2023/05 ~ 2024/11)で黄色になりました.

  • 典型90
      • 星6,7(青黄相当)を埋めました
      • 星7の内容は最近のABCの青・黄問題によく現れる印象です
  • EDPC
      • V問題まで埋めました
      • 気が向いたら全部埋めます…
  • 黄diff埋め
      • 最初の方はほとんど解けず,解説ACばかりしていました
      • 解説放送とか上位者のコードを参考にするようにしてから,徐々に解けるようになってきた気がします
  • ABCの青・水diff埋め
      • 停滞した時期にやってました
      • ABCのパフォが安定したのはこれが一番大きいと思います

青になるまでとやることはそこまで変えていないです.(ほぼ1色上がっただけです)

黄 diff 埋めは解説放送を見るようにしたのがかなり良かったです.理解の助けになりますし,snukeさんの実装がとても参考になります.解説放送のコードを写経してそのままライブラリにしたものもあります(Low-Link とか).

またARCにあまり出てなかったせいで,絶賛青黄反復中です.今後は頑張って出ます.

おわりに

色々書きましたが,自分の色以下の問題を通せるようにするのと、継続することが大事だと思います.

NUPCの宣伝

3/29(土)に名古屋大学でオンサイトのコンテストを開催する予定です!

詳細はcompassのページをご覧ください!

おすすめ記事