はじめに
こんにちは、Yoyoyo8128です!
ARC210で、2200パフォを出し、入黄をすることができました!
ほぼ自語りですが見てってください!
自己紹介
開成高等学校の1年生です。
開成では、コンピュータ部(Kaisei Computer Lovers Clubの頭文字を取り、KCLC)と数学研究部に所属しています。(そこで精進は、してないが...)
AtCoder人生の、振り返り
始めたきっかけ
2022年、僕は、開成中学校に入学しました。
中学と言えば、なんですか?
そう、部活です。部活といえば、運動部を思い浮かべる人が多いと思います。1
しかし、僕は、運動が大の苦手です。どれくらい苦手かというと、シャトルラン37回、ハンドボール投げ8m、水泳を4,5年やって平泳ぎが出来ない、BMI15代、3分走るのもままならない...などと常人には考えられないくらい出来ません。
しかし、僕には、好きなこと、好きな科目、人より得意だな!って思えることが1つだけありました。それは、算数です。3歳の頃に、時計を見てたら数って面白いなぁって思い、算数/数学を勉強しようと思いました。中学2年生までは、家には算数の本ばかりでした。小3までは、主に中学数学などを、小4からは受験の算数をやってずっと面白いなぁと思ってました。そうして、無事、現代文という苦手科目2を、算数でカバーし3、無事開成に合格しました。そうして開成に入った僕は、数学研究部に入りたい!とずっと思っていて、入ることができました。
しかし、開成は、運動部1つ or 文化部2つくらいの勢いで、兼部をするような文化だったので、乗ろうと思いました。
そして、もう1個の部活の候補は、活動の曜日が被ってないKCLCと物理部だったと思います。今思うと完全に数研との癒着ですね。しかし、僕は、Slackと言う存在がわからず、Slackに入ることができず、物理部の最初の歓迎会に行くことができませんでした。ここで物理部に行って一目惚れとかしてたら人生は180度変わったと思います。
そして、僕はKCLCの歓迎会に、参加しました。そこで、競技プログラミングの紹介を受けました。算数的な思考力や、考察を用いると言うことを聞き、算数が好きだった僕は、この部活に入り、競技プログラミングをやろうと決意しました。
なんと、ここまでで約800文字
灰色時代
初参加は、watasou1543と同じ、ARC146の1完でした。考察5分、unsigned long longの存在に、コンテスト中にたどり着くまでにすごい時間を要した記憶があります←ちなみに、別にlong longでも通る制約でした。
灰色は14回で、期間は、2ヶ月でした。
一つ思い出に残っている問題は、Chinese Restaurantです、累積和を勉強した直後だったので、簡単に解けました、灰色コーダー時代にして緑パフォが出た時は、天才だと思ってました...
灰色を245問解いて入茶してましたね、やっぱり茶色になる上では、虚無埋め(実装するだけの問題を解くこと)は大事ですね。
緑コーダー以上は虚無埋めに時間を費やして気持ちよくなるな!
また、AtCoderの界隈では、色が変わった時にTwitterで報告するのが通例と聞き、茶色になった時、初めて公開垢でツイートをしました。ここから、人生は破滅に近づいていったと思います...
茶色時代
ここで、2009年度生まれの筑駒生競プロerと繋がることができました、開成はゴミ行事(記事が変わるので深くは言及しません)のせいで、部活のスタートが遅かったので、競プロを始めるのが筑駒生と4ヶ月くらい変わってきます、そのため、僕が400とかの時に、同年代なのにレート1000とかの人がいました。
僕はこれで火がつき、狂ったように精進しました。
僕の人生が狂い始めたのは、間違い無くこの時代でした。敗因を4つあげます
なんと、この中の3つはとある人の陰謀によって余計にハマってしまいました。許せない
みなさんはあまり深夜まで起きてこういうことをやらないようにしましょう。
競プロの話に戻ります
割と緑Diffを解く練習をしていますね、なりたい色の問題を解くのは、大事だと思います。
緑コーダーになるには、C++が書けて、多少競プロの考察に慣れて、UnionFindや累積和、二分探索などのアルゴリズムを知ることが、大事だと思います。
緑色時代
才能がなかったり、努力をしなかった人が、つまづくのは、個人的には緑だと思っています。実際、この区間で、割と多くの同年代を抜かしました。
個人的には、茶色時代に、緑の問題を解いていたりしたこと、算数を割とやってたことが、功を奏し、あまり苦労せずに水色にはなれたと思います。1年に1回の筑駒・灘・開成の競プロerが参加する合宿である、パ研合宿の直前に水になれたのは嬉しかったです!
この辺りから、考察が入るので、数学的思考力を養わないと、高いレートにはいけなくなります(僕も黄色までの道でむっちゃこの点で苦しみました)
水色になるには、知っておくべきアルゴリズムがたくさんあるような気がします。この辺りからじゃんじゃん知識もつけていきましょう!
緑色時代に精進した問題数、なんと100問、ここから僕の怠惰が始まります。
水色時代 (ここから先の文章は、熱が出てる時に書いた文章となります。)
入水から2ヶ月くらいで、1400まではすぐなれました、今思うと、ここまでは割といい感じに停滞はせずにいけたのではないでしょうか、しかし、ここからあまりレートが上がらなくなります。僕の頭にとっては、これ以上の思考は練習しないと不可能ということなのでしょう。全AtCoderユーザーに、レートが停滞する瞬間っていうのは必ずあると思ってます、そして、色々な人のレート推移を見ていると、一度停滞するとそこからは定期的にレートが停滞するような気がしています。そして、どこまで停滞せずに行けるかというのはかなり個人差があると思っています。正直、これに関しては、かなり残酷なゲームだと思っています。
↓僕の推し8

不屈の魂で、停滞しても精進しましょう。精進をしなければ停滞したままですが、精進をすれば道が開けるかもしれません。停滞したとこ以上のレートになるには、そうするしかありません。頑張りましょう!
入青の時に知ってたアルゴリズムや、精進記録は、入青記事に残っていたので、興味ある人は、見てってください、こっちはこの記事に比べ相当短いので。
青時代前編
ここからは入黄記事初出ですね、当たり前。
まず、僕は入青した時、ABCでは7割負ける、ARCでは7割勝てるみたいな感じでした。まぁ、この頃は実装練習とかしてないし、知っとくべき知識を知っていたかも怪しいし、セグメント木系の問題が解けるか怪しいみたいな感じでした。そりゃ勝てない。
僕は、競技プログラミングの考察の部分にしか楽しみを見出していませんでした。だからABCを切れば入青できるのでは?とかを考えます。まぁこれで1800までは行くことに成功しましたがそこから停滞しました。正直、AtCoderの楽しみは人それぞれなのでそうしてもいいとは思います。しかし、競技プログラミングを強くなろうと思う上では、全部のコンテストに出なきゃいけません、理由は、逃げた分野が必然的に弱くなるし、ABCに出ないで黄色になるのも相当難易度が高いものになるし、ARCに出ないで黄色になったとしても、その後上に行くのにおいてかなりキツくなる(ABCがUnRatedになるので)、よってどっちも強くなる必要があります。
しかし、中3の頃は人間関係などでメンタルも壊してました。人生で1番やばかった時期でもありました。確実に言えるのは、良くない1年間だったということです。この時期に関しては色々なことを色々な方面で反省してます。
青時代中編
なんと、この頃JOI本選に向けた精進をします。今思うとなんでこの頃精進してたんだろうって思ってます。僕はかなりの気分屋なので、気分だと思うけど...
本選のバチャをし、7割くらいボーダーを超えていたので、本選通過したいなぁと思いました、結局、難易度9であるC問題のミ・テレフェリコをACすることができず、DもbitDPの自明部分点しかとれず、Eも自明部分点しか取れず、ボーダーが306点の中、297点しか取れず、わずか9点差で落ちてしまいました。この時かなりメンタルブレイクしたのを覚えています。今年は絶対に屈辱を晴らす。
青時代後編
ここで、僕に転機が訪れます。
これ、すごいですよね、この頃の競技プログラミングモチベが低くて悩んでいましたが、先輩にも勧められ、何故か他社のプログラミング塾であるはずの落合式プログラミング塾が勧めてくるとかいう面白いものを見て、申し込みをしました。てかこれ本選前の出来事だったんだ、本選受けた後だったら萎えて何もしてなかっただろうから本選前に申し込めたのは本当に良かった
何はともあれ、入塾テストを受けることにしました。何人が受かるかとかの情報がなにもなかったので、とりあえずベストを尽くすしかありませんね。試験当日は鉄緑とかいう変な塾に行ってる同級生達とマクドナルドに行きましたね、シャカポテ、とても美味しかった!!
結果としては、僕は3位の77点で合格でした。この時、僕はまだ競技プログラミングをやる素質があるんだ、そして、最強の人に競技プログラミングを教えてもらえば、何かが変わるかもしれない。そう思ったので、競技プログラミングをガチでやるという決心をしました。
そして、色々あり、ABCに出た青Diffを全部解こうと決心します。未ACの141問をすべて集めました。
これ、結果的にかなりおすすめの精進方法です。自分の色Diffは埋めましょう。
4月から5月の後半くらいは一周全問題を見てわかった問題は実装、わからなかった問題は解説を見て日を置く、みたいなことをしていました。50日とかで100問を解いていたところを見ると、その時期は頑張っていたのでしょう。
あと、素早く埋めることが大事です。なぜなら、長い時間そんなことをしているのも勿体ないし、何より早く解くトレーニングはした方がいいからです。今のABCで、黄色になろうとするなら、黄色Diffや橙Diffを解くか、青Diffまでを、ノーペナで瞬殺しないと上がることが出来ません。隠れGPT不正者や中国人参加者などの影響により、今のAtCoderは、相当レベルが高いし、これからも確実に上がり続けていくでしょう。なぜなら、あなたが精進をしている時、必ず周りも精進をしているからです。それに勝つには、同じ時間で比べた時に、周りよりも多くの精進をしなければ行けません。黄色になることを後回しにすればするほど、苦しみます。正直、2024年のうちになっとけばかなり楽だったかもとも思っています。
そして6月は黄色Diffをちょっと頑張りました。やっぱり、今の青後半Diffとかを解くには、昔の黄色下位Diffくらいは解けないと苦しいですからね、
そのあと、期末でちょっとスパンが空き、7,8月はあんまやってませんでした。なんで時間がある夏休みに限ってだらけるんやろ、まのさばとかやってたらしいです。まぁやらなすぎてるわけじゃないし、タコパとか花火大会とかいろんなことして楽しい夏休みだったしギリよかった。最後の方ちょっとまよこんとかやってました。学校ない時期はやってもいいと思います。あの難易度構成は割と楽しいし力になりました。
9月からはJOI精進をして、実装力を付けてます。それまでJOIに対してはあんま意識していませんでした。難易度7から順番に埋めていく予定です。来年の春までに、難易度11とかが解けるようになりたいです。
1週間真っ白なのは文化祭前だからです。僕はバカなので文化祭4日前からやる気を出しました。やるべきことは終わらせたので耐え。正直、直前だけ文化祭感を味わうのが僕の文化祭の楽しみ方ではある気がしている...
その後は、難易度7と8を埋めています。10月の真っ白の部分は中間です。僕は成績が悪いので、赤点回避のために一夜漬けをしなければ留年をしてしまうので、頑張っています。毎回JOI2次予選と期末が被るのはどうにかしてほしい...
そして、実装力を鍛え、元々苦手だった早解きに成功し、11/8のABC431で2400perfを出すことに成功し、入黄が見えてきました。
11/12に難易度8を埋め終わりました。だいぶ達成感がありました。この時、僕はJMOの予選が控えていたのであと4日は流石にJMO Virtual Contestを解こうと思いました。
そして、11/15のABC432では2335perfを出し、1977まで行きました。2184perfで入黄のとこまで来ました。
入黄当日、JMOを受けに行きました。当日は、7の分野が組み合わせ(僕の得意分野、競プロで割と使うから競プロerは得意ガチだしやるべきガチ)で6の分野が苦手分野の幾何だったのですが、解け、1~8まで解き1つもミスをすることなく8完をすることができました。これは割と嬉しかったですね。その後、サイゼリヤ西早稲田店で一緒に行った人に、AtCoder勝つよ!!と宣言して、帰ってきました
帰ってきて少し昼寝し、30分前には起床し、ARC210に参加しました。その後、ちょっとC問題で詰まりながらも3問解くことに成功しました。3問解いた瞬間、見えたperfが2199で、あと6人に抜かされたら入黄ができずみたいな状況でした。しかし、ABC以外の3問は全て赤Diff以上で、すごい崖だったのでワンチャンあるかと思い、早くコンテスト終われ!!!とずっと心臓バクバクで順位表を見てました。問題を解くべきではあるが、許して... そして、結局あと3人のところで耐え、入黄することができました。マジで嬉しすぎて本当に興奮しました。
黄色時代(おまけ)
なんでこんなものあるんだよってなりますが、すごい体験をしたので書かせてください。
入黄した瞬間、とても嬉しくて、ドーパミンが出て眠ることが出来ませんでした。JMOがあったので9時に起きたのに寝たのは5時だし8時から学校だしJMOやARCで頭使って疲れたしでとても体がつらい状況で学校に行きました。3限まではただ眠いだけだと思い頑張っていましたが4限くらいで太陽に当たっていないと無理...となり、昼休みに熱を測るとなんと38.5℃、皆さんも興奮して寝不足になるのには気を付けましょう、それで入黄記事が遅延したことをお詫びします。
JOI結果まとめ
中1
本選Bランクでした、本選で45度回転を再発明しBをAC、これはすごかった
中2
本選Bランク、C問題の制約を見て絶対貪欲が通るって思い3回しか曲がらないみたいな変な嘘を生やしたんだっけな、JOI本選当日のARCで入青したし負け方が微妙すぎてあんまり悔しくなかった。
中3(再掲)
本選のバチャをし、7割くらいボーダーを超えていたので、本選通過したいなぁと思いました、結局、難易度9であるC問題のミ・テレフェリコをACすることができず、DもbitDPの自明部分点しかとれず、Eも自明部分点しか取れず、ボーダーが306点の中、297点しか取れず、わずか9点差で落ちてしまいました。この時かなりメンタルブレイクしたのを覚えています。今年は絶対に屈辱を晴らす。
目標は、高1で春合宿、高2でIOIです。
真面目なまとめ
個人的には入黄するには、青Diffと黄Diffを解くことと、JOIの問題を解くのがいいと思います。
青とかまで行くと大体の人が数学は大大大大大好きな気がするので、実装力を磨くのがかなりいいと思います。
あとレートが伸びなくても諦めずに精進することです。やっぱこれにつきます、当たり前ですが。
あとABCにもARCにも出ることも大事だと思います。これは僕が一番失敗したことです。
あと、AtCoderにおいてはライブラリを貼ることが可能なので色々なライブラリを自分で持っておくことがおすすめです。初めて使うライブラリだと、使い方に時間を食ってしまいます。僕が入黄時点で持っていたライブラリは、
- ベルマンフォード/ダイクストラ/区間に辺を貼るテク(未使用)/UnionFind/ワーシャルフロイド
- エラトステネス/拡張ユークリッド/modpow/素因数分解/ロー法(未使用)
- 乱数生成/時間測定
- ローリングハッシュ/Suffix Array
です。あとACLも使えるようにしてあります。これくらいは持っておいた方が確実にいいです。
最後に、黄色になった時の蟻本に掲載してあるアルゴリズムの理解度を5段階評価でつけて、その後精進記録を載せてこの記事を終わりましょう。
| アルゴリズム名 | 理解度 |
|---|---|
| 全探索 | 5 |
| 貪欲法 | 5 |
| ナップザックdp | 5 |
| bitDP | 5 |
| 桁dp | 4 |
| 期待値dp | 5 |
| 木dp | 5 |
| 全方位木dp | 1 |
| UnionFind | 5 |
| ダイクストラ | 5 |
| ワーシャルフロイド | 5 |
| ベルマンフォード | 5 |
| ユークリッドの互除法 | 5 |
| 繰り返し二乗法 | 5 |
| 二分探索 | 5 |
| 半分全列挙 | 5 |
| 座圧 | 5 |
| セグ木 | 5 |
| 遅延セグ木 | 3 |
| 他の色んなセグ木 | 1 |
| BIT | 5 |
| 平方分割(嘘解放ガチ) | 3 |
| 行列累乗 | 5 |
| ネットワークフロー | 2 |
| 計算幾何 | 4 |
| 凸包 | 2 |
| Li Chao Tree | 1 |
| 数え上げ | ??? |
| Grundy数 | 5 |
| 強連結分解 | 3 |
| 2-SAT | 2 |
| LCA | 5 |
| ダブリング | 5 |
| A* IDA* | 0 |
| 分割統治 | 2 |
| FPS | 4 |
| ローリングハッシュ | 5 |
| Suffix Array | 4 |
| その他の文字列 | 1 |
精進記録
-
この界隈ではそんなこともないですかね...? ↩
-
大体開成の入試は20/85くらいしか取れない ↩
-
本番は1ミスして78/85だった、簡単回だったので満点取りたかった ↩
-
筑駒生に勝つために、ずっと精進してました。深夜を返上してです。最悪の冬休みですね...Streakを繋げるために毎日精進してましたが、切れたのは体調不良により倒れたことによって、眠ってたら日付が変わってたからです。親に無茶苦茶心配されました...ちなみに、僕は怠惰なので、今でも、最長Streakはその時のものです ↩
-
Fall Guysは、僕が最初にハマったゲームです。これも深夜にむっちゃ試合数回してました、ちなみに、クリエイティブのアプデが入って、全くやらなくなりました、興味って怖い ↩
-
ぼっち・ざ・ろっく!は、僕が初めて見たアニメです。今でもぼざろは最高に好きなアニメです。
ここから、アニメにハマってしまい、200作品近く見てるらしいです。きららアニメ最高!!!
この3年、アニメと競プロの人生でしたね... ↩ -
Twitter←自明に悪、1日の大半の時間を奪われる、メンタルがやられる、カス、ゴミ ↩
-
学園アイドルマスターの葛城リーリヤです。かわいい ↩














