はじめに
今までAtCoder等の存在を知ってはいたもののそんなにモチベがわかず避けていました。しかし、高専プロコン勢に競プロ勢が多く、まぁやってみようかなという気持ちになったので今年の10月からAtCoderを始め、ABC437で無事入茶することができたので色変記事を書いていきます。なお、入茶したい人へみたいな記事はたくさんあるので単に自分がしたことを書いています。
(文章書くのが苦手なので読みづらい点があったらDMください)
自己紹介
沼津高専の3年生です。プログラミングは小2の頃から触れていましたが、競技系のことをやる機会は少なかった、という感じです。
高専プロコンは35と36に出場しました。36の1回戦では輝かしい成績(当社比(ここ重要))を残しました。
競プロでの使用言語はC++,Pythonです。基本前者ですが、クソデカい数や文字列を扱う場合は後者でやっています。
競プロ(Atcoder)との出会いなど
私がAtCoderを知ったきっかけは中1の春休みに見た動画でした。(テレ東の↓の動画です)
https://youtu.be/WGNQrH0AV2k?si=CQaFB-vvbMKDrbOw
これを見て過去問を1回解いてみたのですがC(部屋に畳を敷き詰める問題だった気がします)がさっぱり分からず、うーんとなってました。
当時は、AtCoder Scoresというサイトが問題を点数ごとにまとめていて、これの一番点数が低いやつを埋めていましたが、1週間くらいで飽きてフェードアウトしてしまっていました。
この頃に本腰入れてちゃんとやってれば今頃つよつよになれた可能性があると思うと少し悔やまれますね。
とはいえ、手に入れた知識も当時としては多く、例えばpythonのmap関数なんかはここで知りました。
高専2年の年にもC++を学ぶためにちょっと触りましたが、勉強するなら自分の作りたいもの作りたいな〜となってすぐやめてました(話がそれるので割愛)。
コンテストに参加し始めた頃の話
競プロでも使うアルゴリズムやデータ構造などの知識に関しては、コンテストに参加する前から高専の授業や自習で知っていました。
主に以下の通りです。
- 2分探索*
- DFS,BFS
- 剰余演算(mod)*
- 通常型母関数
- 累積和*
- ランレングス圧縮*
*つけたやつが入茶に寄与したかな〜と思う知識です。
DFS,BFSに関しては問題出たけどひねりがあって解けてない
母関数は完全に数学の文脈で知った知識です。きっかけはこれ↓
https://youtu.be/FR6_JK5thCY?si=b4mwxV5oEruvG6x7
(組み合わせの問題で複素数出すな複素関数で組み合わせ論するぞ)
やったことなど
コードを書く練習
近年生成AIが優秀なので、課題でもなければ生成AIに実装を丸投げしていたせいで、コードを書く力がほぼ皆無になっていました。
二分探索や累積和など、存在を知っていてもどうやって書けばいいかはっきりわかってないやつをコンテスト中に限らず練習したことでスムーズにコードを書けるようになりました。Cの正答率が低いときにAB速解きすると結構perf付くので意外と大事だったりするかもしれない
(参考)

頻出データ構造の使い方把握
上と似たような話にはなりますが、set,multiset,pair,vectorなどは調べなくても扱えるようにしました。
ADT
ADTはAtCoder公式の過去問バチャです。
半強制的に問題を解くことになるので練習になります。
ただ始めたのが12月入ってからなので効果が出始めてるかは謎
その他
- 低難易度の典型90を少し埋めました。
- upsolveをできるだけやりました。
今後について
来年は忙しくなるのでなんとか時間を見つけながら以下のことをしたいと考えています
- 典型埋め
- C,D縦埋め
この過程で新しいアルゴリズムやデータ構造の知識が手に入ればいいなと思います。
さいごに
最後まで読んでいただきありがとうございました。
では次回、入緑したンゴでお会いしましょう。それでは。
