AtCoderで青色になりました

AtCoderで青色になりました!わーー!!!

青色は始めたときからの目標だったので、到達できて一つ区切りがついたな、という手応えでちょっとホッとしています。 ここ最近は手が空くたびにAtCoderのプロフを眺めてはにやにやしています、えへへへ……

自分の中で一つ区切りがついた、ということもあり、 このタイミングでこれまでどういうことをやったのか、や、思い出をまとめていきたいと思い記事を書くことにしました。 どちらかというと自分なりの整理のための文章のような内容で、 「これをすれば入青できます!」という類のものではないのであしからず。。。

誰?

atcoder.jp

twitter.com

柑橘類です。スッパイヨ-
Twitterでよく騒いでいます。うるさいです。あと定期的にポエムを詠みます。

AtCoderは2022年の6月頃から始めています。競技プログラミングも本格的にやったのはその時期から…ではあるのですが、実はpaizaの存在は以前から知っており、A問題くらいまでなら全然解けるくらいにはやりこんでいました。 そういう意味では開始時点で完全に初心者だったか、と言われると若干アヤしい感じで、体感茶色中位くらいはあったと思います。

2020年に博士課程を中退し、ITコンサル的なお仕事を2年半したあと、現職はお世話になっていた人の会社で開発もどきのようなことをしています。最近はTypeScriptやRubyを書いていることが多いです。

研究室は物理専攻(半導体光物性)でした……が、実は大学院後半は物理よりも情報や数理最適化の方に興味があり、自分の研究に関連する範囲でそのあたりをいじくりまわしていました。 (指導教官からは「いつ実験するの?」と弄り倒されていました。でも、好きにやらせてもらえていたことはとても幸せな環境だったと思っています)

AtCoderでは主にC++を使っています。元々はPythonだったのですが、典型90の043 - Maze Challenge with Lack of Sleep(★4)でどうしてもPythonDijkstra解が通せず、そこからC++に転向しています。

入青するまでにやったこと(精進周り)

精進

周囲で色変している人を見ると精進量は結構まちまちですが、私はまあまあ平均的な方だと思います。

眺めてみると緑&水が同数くらい、青がその半分くらい、黄以上はほとんど解いていない、という感じです。 実際気合を入れて精進をしたこと、というのはあまりなく、どちらかというと後で書いているバチャ荒らしなどの流れで解いているものがほとんどだと思います。

バチャ荒らし

と私が勝手に呼んでいますが、要は人様の立てたバチャに勝手に参入して問題を解きます。 結構バチャに飢えているときは、茶色の人が立てている緑精進とかのバチャに勝手に参加して1stを取っていったりします。最悪ですね。

こう、特にやりたい問題がなくて暇なときとかに「誰かと一緒に問題に向き合っている」という感覚が好きでバチャには結構な頻度で参加しているとおもいます。 最近ではburiodenさん主催のABCDバチャとか、あとはTwitterで「〇〇時からバチャやるよー」という募集を見かけると 参加することが多い気がします。

まよコン

前述のバチャ荒らしの一環ではあるのですが、ちょっとこれに関しては特筆したいので章を分けています。

まよコンは、まよ🌽さん主催のバチャでABCなどが無い日の21:00~のバチャです。 バチャの中でもまよコンには結構前から参加していて、競プロを初めて2ヶ月くらいの8月頃から、それなりの頻度で出ていました。

個人的に問題セットがABCライク(というかABCの問題しか出ない)で、時間的にまあまあ出やすいのもあってかなり楽しくやらせてもらっています。 上のバチャ荒らしもそうですが、問題に多く触れる機会が作れることと、解説まで読んではいるけれど実装が面倒でやっていない、や、前に書いたときに死ぬほどバグらせた、 みたいな問題を解き直すいい機会になったりもするので、その点はすごくいいな、と思っています。

精進周りはもうちょっと書いていくのですが、個人的に色変に一番効いていると感じるのはまよコン含めたバチャへの参加だと思っています。

典型90・精選100問

競プロerには言わずとしれたこれこれですね。

典型90の方は昔★5までは埋めたのですが、ちょっと最近サボりがちで★6は2,3ヶ月積んでいます。。。行列掃出しとGrundy数が重いんです。。。

精選100問は緑くらいのときにめちゃくちゃやる気になって、98/100を一気に埋めました。 これはやはりさすが選りすぐりのコンテンツ、と言った感じで、水色までの典型を一通り押さえる、脳死で書けるようにする、という意味でめちゃくちゃに役に立ったと思っています。 ちなみに埋めていない2問はABC149F - Surrounded Nodes(黄diff)と釘(JOI難易度7)です。重い。。。

入青するまでにやったこと(コミュニティ関連)

VRC競プロ部

テッド/妹尾@VRC競プロ部さん主催の、VRChat内で競プロの話をするグループです。 毎ABC後に23時から感想会を行って、解法や考え方の共有や、やんややんや喋ったりしています。

終わった後に解説をみんなで勉強できる、という点と、やはり同じ趣味の人が集まるコミュニティという意味でモチベーション維持にかなり効いている気がします。

こうやって見ると結構競プロ関係のイベントやコミュニティに色々参加しているんだな、という感覚です。自分的にはひっそりやっているつもりだったのですが。

ちなみに、ABCがない日にも競プロ以外で遊んでもらったりもしています。えへへへへ

夏を壊す会 with 競プロ部のみなさん

Twitter

多分この記事を見ている人には言わずもがなですが、Twitterでの交流も競プロのモチベーション維持に結構効いていると思っています。 近しいレートの人が「〇〇の問題といたよ!」というような話をしていると、自分も解いてみようかなーという気になったり、 他の人の提出コードを見てこんな書き方あるんだーと勉強になったり、色変にあたって一定の効果があったように感じます。

私のTwitterアカウント自体は競プロを始める前からあるのですが、ほぼ使ってない状態だったのでフォロー/フォロワーはほとんど競プロ関係です。 ので、TLはほとんど常に競プロの話題、という感じなので、そういう意味でも良いのかもしれません。

思い出深い問題

せっかくの機会なので、結構記憶に残っている問題を紹介しようと思います。みんなも解こうね。。。

コンテスト参加2回目、初めて「アルゴリズム」というものに触れた問題でした。 Cを通した後40分くらい考えてどうしても解けず、解説を見てとても驚いた記憶があります。

これに殺されてから、アルゴリズムを学ぶのが楽しくなって精進などを結構やるようになったと記憶しています。

ARC2回目参加C問題、人生で初めて通した青diffでもあります。 コンテスト中めちゃくちゃ考えて、解法を見つけて、実際にACと出たときにものすごく嬉しかったのが今でも覚えています。

個人的にはABCよりもARCの方が勝てるイメージが有り、それもあってARCの問題にはいい思い出が多いような気がします。

入青を決めた問題です。

ただ、実はこの回、Predictorの表示が実際のPerfよりもかなり低く表示されていて、通した時点では水パフォ、入青はしないように見えていました。 そのため、終わった後ももう一週お預けか。。。と思っていたのですが、更新が来たあとで入青していてそういう意味でもかなり印象的な入青でした。

問題としてもかなり面白い問題で大好きな問題の一つです。

雑記

こうやって振り返ってみると、競プロはひっそりやっているイメージでしたが意外と交流やコミュニティにも顔を出していたんだなあと実感しました。 バチャや精進で一緒に遊んでくれる人にはいつも感謝です。。。

青色にはなりましたが、もっともっといろんな問題も解きたい、強い人達といっぱい勝負したい気持ちは強いので、 黄色、更にはもっと上の色は目指していきたいです。次の色辺記事は何年後かなぁ・・・

あとは、ちょっと前に話題になった、レート近い人とお互いに問題出し合うやつとかもやりたいですね。 具体的にはhighestが同じくらいの某羊さんとか。どうですか。

???

実はVRC競プロ部に入ってからVRCで色んなワールド回るのが楽しくなってしまってハマってしまいました、、、 結構きれいなワールドが多いので写真とかとるのが楽しいんですよね、、、

青になったら多少載せてもいいはず。。。と甘えていろいろ載せちゃいます。みんなもVRC…しよう……!