MtSakaのブログ

競技プログラミングをします

【色変記事】AtCoder黄色になりました

おひさしぶりです。MtSakaです。前回の記事から160日くらいです。時間が過ぎるのが早いですね。

この通り、2022/2/13のAtCoder Regular Contest 135で黄色になったので色変記事を書きました。

前回の色変記事

青になった時のはこちらです。内容が薄っぺらいので今回の記事を読むだけで十分だと思いますがぜひ見てみてください。

mt-saka.hatenablog.com

自己紹介

こちらで自己紹介はしていますがこの記事でもしときます。
mtsaka.github.io

中学二年生のMtSakaです。趣味は競プロとか数学です。最近はボカロにかなりハマっています。もともと学校の数学研究部に所属していて競技数学をやっていたのですが、ツイッターで見つけたAtCoderというのが気になって登録してみたらいつのまにか競プロしかやっていませんでした。競プロではC++を使っています。現在はイギリスに留学中です。

競プロ始めてからを振り返る

初参加

2020/12/05の鹿島建設プログラミングコンテスト2020(AtCoder Regular Contest 110)が初めてでした。なんとAの1完でした。

茶色になるまで

AtCoderにあるAPG4bでC++をお勉強しながらコンテストに参加していました。そして、2021/1/30のABC190で水色パフォーマンスを出して一気にレート600まで上げました。

緑になるまで

C++の基本文法は理解できてソラでコードをかけるようになってきたので、基本的なアルゴリズムの勉強をしました。具体例でいうとグラフの基本の探索アルゴリズムや、素因数分解などの整数系のアルゴリズム、UnionFindなどのデータ構造と簡単なDPとかはここらへんで理解し始めたと思います。

水色になるまで

過去問をたくさん解くようになりました。確かこのころにCodeforcesTopcoderにも参加するようになりました。この頃にもうちょっと発展的なDPやグラフの最短経路アルゴリズム、累積和、imos法、尺取り法、二分探索などの典型テクニックを勉強しました。ほかにもいろいろ勉強したと思います。

青になるまで

このころから多少ライブラリ整備というものをし始めました。といってもローカルのファイルに全部ぶっこむだけで大したことはしてないです。この頃は弊校名物の運動会の後の燃え尽き症候群と学年旅行の準備(旅行委員副委員長でした)も相まって、モチベが少し低下していました。イギリスに移住してからは友人がいなかったので廃人のように競プロとネットに浸かっていました。今考えると恐怖です(と言いながら今もかなり廃人だとは思っています)。そして、イギリスに来てからライブラリ整備をgithubで管理するなどしてもう少し真面目にやり始めました。体系的に知識を整理できるのでいいですよね。そして、この頃にセグメントツリーの勉強しました。

黄色になるまで

開発がしてみたいという気持ちからテキトーに競技ではないプログラミングを勉強をしていて、競プロのモチベが下がっていました。同時にHTTFもありマラソンをかなりしてた時もありました。おかげで少し休めたので結果的に良かった気がします。そして、ライブラリ整備にはまりました

mtsaka.github.io

ここにあるアルゴリズムなどを黄色になるまでお勉強してます。githubの更新履歴などを見ればいつ何を勉強したかわかります(これ、便利ですよね)。なんかいろいろ勉強/実装しましたね。特に遅延セグメントツリーとかFPS(形式的冪級数)とかフローとかがメインですね。そして、JOI埋めをがっつりやりました。同級生たちはJOIに出るので精進している中、やらないわけないですよね。結果非公式難易度の8まで埋めました。

競プロをやる上で意識してることなど

  • 行き詰った時はベッドに寝転がるなどして気分を切り替える(これで問題が解けることが何回かあったり)
  • Upsolveをする(大事)
  • コンテストに出れるときは出る(出るときの高揚感というか緊張感が好きで、実力が発揮できる気がするので)
  • やる気を維持する
  • すべての問題に目を通してから解く(行き詰った時やパニックになった時にでも冷静な判断をするために)
  • ライバルを見つける(これはモチベ維持と関連しますが競プロが楽しくなるってのもあります)

これからは

まずは1週間くらい黄色になった余韻に浸りながら気楽に生きようと思います。そして、自己紹介にあるように最近はボカロにはまってるのでとにかく聞きまくろうと思います。他にも今やっているAHC008を頑張ったり、ゲームをやったりしたいです。あと、せっかく黄色になったのでいつかユーザー解説を投稿してみたいなーと思ったり。普通に教育的な内容の記事を書きたいなーだとか、(日本の)同級生にもっと競プロを布教したいなーだとかいろいろやりたいことありますね~。ちなみに応用情報技術者試験を秋に受けたいなーとか思っています。最近やってなかったCTFをやったり、Kaggleにちょいちょい手を出したりもしたいですね。とやかく競プロ以外のことも力を入れたいです。とりあえず今は休んで英検1級の二次試験に合格します。神様よろしくお願いします。

追記:

ハイスぺPCが欲しいです。今Cドライブがカツカツなんです...

質問来てた

ツイッターなどで質問募集したので答えていきます

モチベはどう維持していましたか?

ライバル(特に同級生)を強く意識しながら競プロをやっていました。おかげでかなりやる気が出たと思っています。

彼女いますか

いません!!!

好きなアルゴリズム/データ構造は何ですか?

好きなデータ構造はセグ木です!!好きなアルゴリズムFFT/NTTです!!

出ているコンテストサイトは何ですか?

AtCoderCodeforcesTopcoder、Codechef、TOKI、Leetcodeあたりですかね。他にもあるかもしれませんがよく覚えてません。

好きな問題は何ですか?

去年の年末あたりに解いたWTF2019のE問題のeですかね~。解けたときはめちゃくちゃうれしかったです。これ↓ atcoder.jp

水diff以下くらいの比較的簡単な問題をたくさん解く時間と暖色diffなどの考察が重要な問題/実装が非常に困難な問題に立ち向かう時間はどれくらいのバランスを取っていますか
またどちらをやっているときのほうが楽しいですか

自分はどちらかといえば早解きタイプなので強みを伸ばす/安定させるという意味で前者も大事だとは思っているのですが、後者をやってもっと実力をつけたいという気持ちのほうが最近強いので時間比は2:3くらいです。問題の分野のほうが個人的には解いてるときの楽しさに大きく影響するのでどちらが好きかというのはっきりとはないですね。

精進記録など

おわりに

黄色になったからにはもちろん橙を目指していくのですが、競プロではJOIなどその他もろもろのコンテストを頑張りたいと思っています。そして、我が学年トップの層にもっと近づいて同等に戦える日が来たら嬉しいです。これからもよろしくお願いします。では次回の記事でお会いしましょう。