はじめに
2021年11月7日にAtCoderアルゴ初参戦してから半年もかかりましたが、ABC248にてようやく入茶できました!!(普通は10回参戦=約2ヶ月程度で入茶できるものらしい)
っつーわけで色変記事なるものを書く機会がようやくこの私にも巡ってきたわけですが、入茶までに必要な知識や精進スタイルなどの話題はもう十分に語り尽くされている感があるので、本記事では「俺流競プロの楽しみ方」に全振りしようと思います。技術的に有益な情報は一切ありませんがご容赦ください。
本題に入る前に私のスペックについて書いておきます。
年齢: 本記事執筆時点では27歳
職業: ひよっこ下請け環境調査員
学歴: 公立最底辺大を1年で中退(大学サボって虫採りばかりしていたら単位が足りず除籍食らいました...)
学生時代の苦手科目: 数学、物理、化学(思考が苦手です)
我ながら実に酷いスペックですね。一言でまとめると絶望的に競プロに向いていない人です。
そんな弱小プレイヤーなりに競プロを楽しんできた方法をこれから紹介していきます!
1. BGM
AtCoderは大変よくできたネトゲですが、その性質上BGMは用意されていません。そりゃあコンテスト中は無音の方が集中できますが、やっぱりコンテスト前後は気持ちを盛り上げる音楽が欲しいですよね。ここでは私が「これは競プロの歌だ」と勝手に思い込んでいる楽曲をご紹介します。
コンテスト前のおすすめ
古井戸「なんとかなれ」
麻雀アニメ「アカギ」のOPとしても知られています。さすらいの競プロ博徒ごっこができて楽しいのでオススメです。サビの「なんとかなれーーーー!!!!」という魂の叫びはまさしくコンテスト前の競プロerの心境であると言っても過言ではないでしょう。
長渕剛「裸足のまんまで」
反骨心を沸々と湧き上がらせてくれます。
スキマスイッチ「ゴールデンタイムラバー」
コンテストのスリルを高めてくれるような歌詞です。
般若「やってやる」
詳しくは後述しますが、私にとって競プロで一番興奮する時間は「爆死覚悟でARCにRated参加登録する瞬間」です。その時のお供はいつもこの曲です。
コンテスト爆死した時のおすすめ
長渕剛「ろくなもんじゃねえ」
この歌を聴きながらヤケ酒をキメて敗北感に浸るのも楽しいものです。
長渕剛「レース」
長渕が鬱の底にいた頃の敗北感を生々しく歌った楽曲です。マジで大惨敗を喫した時はこの歌を聴いて徹底的に卑屈な気分に浸ります。落ち込む時はとことん落ち込みましょう。
コンテストで大勝利した時のおすすめ
Lia「小さなてのひら」
かの名作ギャルゲ・アニメ「CLANNAD」のラストを飾る名曲です。俺は長渕生まれヒップホップ育ち鍵っ子は大体友達。
2. アウトドア競技プログラミング
私にとって一番の趣味・生き甲斐は昆虫採集です。今やただの趣味ではなく本業である環境調査にも直結する活動なので、あまり手を抜くわけにもいかず、休日は基本的に虫採りや標本の整理に時間を割かなければなりません。土日や連休は帰宅せずに山に籠もることもしばしばです。
しかしこれが競プロのコンテストとは相性が悪いのです。コンテストが開催される週末の夜にはパソコンの前に座っていなければなりません。え?虫と両立できねーじゃん!どうしよう...。
悩んだ末に私は「山にパソコンを持ち込んでコンテストに参加すればいいじゃないか!!」という結論にたどり着きます。新たなる競プロスタイル「アウトドア競技プログラミング」の誕生です。
こちらは山中のキャンプ場からABCに参戦した時の写真です。バイクのリアボックスを机にしました。流行りのスタンディングデスクってやつですね。
野外ならではの爽快感がクセになった私は、これ以来マウンテン競技プログラミングを頻繁にキメるようになります。
離島に虫採り遠征に行った時も、海岸林のキャンプ場で「離島シーサイド競技プログラミング」をキメました!
ちなみに肝心の虫採りはメインターゲットを落とせず惨敗を喫しました...。
コンテスト本番だけでなく、精進も山の上でやると気持ち良いですね。
環境調査員という仕事柄、山奥で肉体労働をすることもあります。なかなか疲れるので正直なところ昼休みは素直にお昼寝したいところなのですが、そこはグッと堪えて競プロ精進をキメます。名付けて山奥肉体労働現場競技プログラミングです。
アウトドア競技プログラミングの爽快感は本当にクセになるので、皆様も是非お試しください!!
ただしコンテスト本番にやると普通に実力を発揮しきれなくて冷えます。ほぼ毎回冷えてます。楽しいからヨシ!
3. 言語選定
競技プログラミングによく使われる言語といえばやはりC++、次点でPythonでしょう。RustやRubyを使う方もちらほら見かけるイメージです。
かく言う私も当初はPythonを使っていたのですが、開発と違ってエコシステムの充実度をあまり気にせずに済む競プロでありきたりな言語を使うのはなんとなくもったいない気がしたので、開発に使うにはエコシステムが未発展すぎるけど興味深いマイナー言語で遊んでみたくなりました。幸いにしてAtCoderは他の同種のサービスに比べて使える言語が豊富です。こりゃあ遊ぶっきゃねえ!!
数ある面白そうなマイナー言語の中から私が選んだのはCrystalでした。理由は名前とRuby風の構文がカッコいいからです。
...私のバカ話は置いといて、この言語を使うことには技術的なメリットもたくさんあります。これについては以下の記事が詳しいのでご参照ください。Crystalはいいぞ!!
プログラミング言語Crystalで競プロをする際のテクニックまとめ - Qiita
AtCoder に登録したら解くべき精選過去問 10 問を Crystal で解いてみた - Qiita
4. ARC特攻
典型的な問題が多く出されるABCとは異なり、数学的なセンスや発想力が試される問題が多いARC。0完レート激減のリスクが常につきまとう恐ろしいコンテストです。
ABC卒業まではARCを避ける競プロerの方も少なくなく、特に灰・茶コーダーだと「自分にはまだ早い」と思い込んでいる方が多いようです。
しかし私は声を大にして言います。ARCにはなるべく出ましょう、Ratedで。
0完爆死覚悟でARCにRated参加登録する瞬間の血液が沸騰するような興奮は、ABCや他の趣味では得難いものがあります。レートが温まろうが冷えようが、この興奮を味わえた時点で「日常生活では得られないスリルを楽しむ」という競プロ最大の目的を果たせたことになるので勝ちです。
可愛いレートには旅をさせろ。崖に突き落とせ。
おわりに
AtCoder入茶。一般的にはチュートリアル前半終了程度のことでしょうが、頭の悪い私にはなかなかに大きな壁でした。
正直茶後半あたりが私の限界なんじゃなかろうかと思い始めているのですが、今年の初めにどっかのバカがこんな大口叩きやがったんですよね。
こんな宣言しちゃったからにはもうやるしかないっすね。やってやりますよ、年内入緑。
技術的に有益な情報が一切無いバカ文書に最後までお付き合い頂きありがとうございました!