ぬるぬしの日記

競プロの記録

AtCoderで水色になりました。

本日(2020/04/26)のABCでAtCoderのレートが水色になりました。
f:id:null_nuushi:20200426230644p:plain せっかく入水したので、色変記事を書いてみました。先に断っておくと、誰かの役に立つようなことは特に書いてなくてただの日記です。

自己紹介

計算系の研究室に所属している大学院生です。配属までプログラミングには触れてこなかったので、プログラミングを習得する必要が生じ、AtCoderを始めました。数値計算ではCやFORTRANが使われると聞き、よく違いが分からないけどC++やれば大丈夫だろという思いでAPG4bを始めたのがきっかけです。
そういう訳で、数学にはまあまあ馴染みがあるもののプログラミングはノータッチだったという、AtCoderでは多分2番目くらいに多い属性の者です。

~灰色

コンテストに出ました。2019/04/06のABC123が最初に参加したコンテストだったようです。
このときまではほとんどプログラミングをしたことはなく、ぎりぎりプログラミングっぽいものといえばエクセル使ってモンテカルロ法で円周率をもとめよう、みたいな課題をやったことがあるくらいでした。

灰色~茶色

11回目でようやく茶色に到達しました。APG4bを進めながらとりあえずコンテストだけ参加していましたが、あるときパフォーマンス-700だか-900だかを出してから過去問を解き始めました。
あとこの辺から晩酌しながら参加するのをやめた記憶があります。

茶色~緑色

晩酌やめたらコンテスト中のバグが格段に減って急にパフォーマンスが上がりました。過去問を解き始めたのも効いたように思いますが、かなりの部分は場合の数とかの中高までの数学のおかげなように思います。

緑色~水色

緑には長いこと滞在しました。過去問は思い出したときに解いたり解かなかったりで、レート1000辺りに漸近する生活を送っていました。
知らないアルゴリズムがあって解けないor時間がかかるということもありましたが、まだD,Eの解法は分かったけど実装が遅いor無限にバグらせる方がよっぽど多かったので、とりあえず後者のケースがなくなるまではアルゴリズムの勉強は置いておこうと思ってだらだら参加していました

そうこうしていると、きりみんちゃんに敗北を喫しました。

きりみんちゃんをご存知でしょうか?弱冠ななさいのバーチャル幼女プログラマーで、時折YouTubeAtCoderの過去問を解く配信をされています。AtCoderの配信以外にもゲーム配信だったり雑談配信だったり、エンジニアとしての仕事のお話をしてくれたり、色んな活動をされているので興味があれば見に行ってみてください。

AtCoder初挑戦回。
youtu.be

AtCoder配信。きりみんちゃんはガチで諦めないので凄い。
youtu.be

現場猫もびっくりの労災案件ゲーム配信。職場が舞台だけど要はパズルを解いたら勝ちなので、ありえん行動を平気で起こして解いてくのが面白かった。スプリンクラーのように人を巻き散らすところがツボ。
youtu.be

さて、きりみんちゃんがAtCoderに参加されるようになったのは確か去年の7月か8月くらいで、自分はAtCoder社長のちょくだいさんが紹介していたのを見て知りました。
きりみんちゃんは数学に馴染みが薄いそうで、数学色の強い(と評される)AtCoderにはやや苦戦されていました。ただ、過去問配信ではかなり粘り強く解いていて、成長していくきりみんちゃんを見るのが楽しく、割ときりみんちゃんのことを気にかけていました。

そうはいっても、自分は数学はそこそこやってきたので、数学パズルたるAtCoderではそうそう負けることはないだろうと思っていました。きりみんちゃんが精進を積んでいる様子は配信やTwitterで見ていて、DPとか自分がちゃんと勉強してないアルゴリズムも習得していっており、そのうち追い抜かされそうだな~とは思っていたのですが、1年たたずに追いつかれるとは……

この頃からやはり典型は勉強しようかなという気になり、BFSとDPとDijkstraとを練習しました。この辺のアルゴリズムはコンテスト中に「見たことあるしDPってやつで間に合う気がするけど書いたことないから分からん」みたいなことが時々あったので。あとグラフに関連する操作ってあんまり高校数学くらいまでの経験で出くわさないので、その辺の考察を練習したら伸びるかなと思ったからです。
Dijkstraはそんなに頻出ではない気がしますがcostを考えるだけでほぼBFSなので流れで覚えました。
(DFSは必要性がぴんと来てなくて練習してません。最悪計算量って結局BFSもDFSも同じになる気がするけど、BFSで出来なくてDFSで出来るとかあるんだろうか……?単に平均時間の問題?)


また、この頃にACとWAの通知にボイスを付けました。

前から音声通知をつけられたらコンテスト中に採点の判定を待たずに次の問題にいけて便利だろうなと思っていたのですが、調べるとatcoder-bellというブラウザの拡張機能を作ってくださった方がいらっしゃたので、これを導入しました。 qiita.com

webというかブラウザで動作するプログラムのことは本当に何も分からないのですが、実装を見てみるとmp3の音声をbase64エンコードしてコード内に直接埋め込んであるようです。
これを見たときは、「好きな音声をbase64エンコードすれば通知音を差し替えられるのでは?」とぼんやりと思っていました。
またちょうどこのとき、ちょくだいさんとVTuberの柚子花さんがTwitter上で会話していて「そこ繋がってるのか!」と不意に面白くなり、なんか変に感情が混ざって「柚子花さんにボイス吹き込んでもらって僕だけの最強の通知音を作ろう」という発想に至りました。

柚子花さんという方をご存知でしょうか?「オーディションに受かって3Dモデルのバーチャルアイドルとしてデビューするはずが途中でプロジェクトが潰れて2Dのまま放り出された女」、通称「オ3Dプ潰女」というパワーワードとともに現れたバーチャルユーチューバーのお1人です。その肩書きの面白さとそれでも前向きな姿勢が好きだったこともあり、動画や配信をたまに見るようになりました。

自己紹介動画
youtu.be

親戚筋?のユニットMarprilの楽曲のカバー。好き。
youtu.be youtu.be

朗読配信も時折されています。声が良いと思いませんか?僕は作業BGMにしたりしなかったりしています。
youtu.be


実際にボイスをつけたのが下の動画です。ボイスはSkebというサービスを通して依頼しました。

これが思いのほか自分には効果があって、過去問を解くといいつつ虚無埋めをしがちだったのが、「なんかWAボイスが聴きたい気分だな」と思って難しい問題にも挑むようになりました。
普段ゲームのボイスとか聞かないし、ボイスが嬉しいのは純度の高いオタクだけだと思っていたのですが、実際なんか効果あったので良いなという気持ちです。

この辺のことがきっかけになったのもあり、だらだら気味だったレートが上がって水色に到達しました。
f:id:null_nuushi:20200426230859p:plain こうして見るとレートと精進グラフがだいたい平行なので、色々あった気もするけどやっぱり精進が効くんだなという感想です。
特に数学は出来るという層は慣れれば茶〜緑くらいにはいけると思うので、そこから先伸ばそうと思ったときに、計算量を気にしたりグラフとか数学ではあまり馴染みのなかったデータ構造の取り扱いに慣れたりすると良いんじゃないかなと思います。

正直研究では難しいアルゴリズムはそんなに必要なくて、競プロやってて効いたのは基本的なプログラミングの他にはBFSくらいです。本来の目的からすればもう十分なのですが、まだまだやりきった感は全然ないので、この調子でこれからも頑張っていきたいです。

あとがき

AtCoderの話をしていたと思ったらVTuberの話をしていた。きりみんちゃんはいいぞ。柚子花さんありがとうございました。
以下は僕の好きなVTuberさん達です。

東雲めぐさん

初配信ダイジェスト
youtu.be ほぼ毎朝7:30からYouTubeで配信 or Voicyにラジオの投稿をされています。生活リズムが整う
youtu.be

お歌も歌っておられます
youtu.be youtu.be

なんとVRミュージカルの主演もされちゃうんです!
youtu.be (日程はコロナの影響で1ヶ月ずつずれました)

羽子田チカさん

自己紹介動画
youtu.be 歌が最高に良いです
youtu.be youtu.be youtu.be 文脈強めですが全員羽子田麻雀は根強い人気があります
youtu.be 羽子田チカはファンタジーフィクションです。

MonsterZ Mate

こんなノリのユニットです
youtu.be

歌がとても良いです
youtu.be youtu.be youtu.be

やや文脈依存があるかもしれませんが、こういう動画もあります
youtu.be

天開司

自己紹介動画……?
youtu.be

配信が主体なので切り抜き動画から見ると入りやすい気がします
www.youtube.com

歌も好き
youtu.be

memex

自己紹介動画
youtu.be

本日3000人記念のセッション生放送をしていました
youtu.be

memexはいいぞ
youtu.be youtu.be youtu.be heterodoxyがはちゃめちゃに好き。
heterodoxyはVTuber10組によるコンピレーションアルバム『ADVENTUNE』に、他はmemexの初アルバム『Dear Thinking Nodes』に収録されています。
『ADVENTUNE』には上に挙げた羽子田さんや他にも素晴らしい方々が参加されており、1曲除いてYouTube上で聴けるので是非。

もう手遅れな気もするけどこれ以上行くと何の記事か分からなくなるのでおしまい。