週記(2023/07/31-2023/08/06)

07/31(月)

午後4時半前に起床。インターン先の定例会に参加した。

先週は別の作業ばっかりしていて機械学習については全く進まなかった。焦りが募る。やっていた作業は人のための準備であるから、最優先のタスクであったことに疑いはない。それしかできなかったというのが問題。

勉強会はAtCoderのコンテストのパフォーマンスについてだった。レート帯ごとにコンテストにおける成功・失敗のデータを集め、平均を取ってレートの高低に応じた傾向を見るというもの。非常に面白かった。コンテスト何回分かの平均を取れば、ABCはどのレート帯でも高めのパフォーマンスが出るらしい。ARCは\pm 0に分布している。AGCにはそんなわかりやすい傾向はなかった。

コンテスト単体では、昨日のAGC063で2800台の人の多くが失敗していたというデータがあった。自分も大失敗したので何となく救われた気持ちになった。またABC310では謎のインド人が大量に参入してきたが、この影響はかなり大きかったらしい。内部レートが初期値の800で計算されるため、そのあたりまでのレート帯がかなり成功の側に振れていた。上で述べたコンテストの平均はこれより前のデータを使っている。

解散後はずっと週記を書いていたが、午後8時半から1時間ほどは指導教員の先生の発表練習に同席していた。ところがよく知らず興味も特にない分野の話だったためとてつもない眠気が襲ってきてしばしば意識を飛ばしてしまった。自分から発表練習に付き合うのを了承しておいてこの体たらくはまずかった。一回通しで聞いた後に気になった部分をいくつか質問して解散。この気になったというのは発表に注文を付けているわけではなく、単に書いてあることが理解できなかっただけである。

改めて週記を書き進め、日付が変わる直前にコンテストが穴あきだらけのまま投稿。辛うじて先週の目玉であるAGCについては書いておいた。

今日は睡眠時間が少なかったため非常に眠い。しばらくPCの前から立ち上がる元気もなかったが、辛うじてベッドに移動し就寝した。午前1時だった。

08/01(火)

正午くらいに目を覚ましたはず。昨晩シャワーを浴びる間もなく寝てしまったから、学食に行くならまずそれをしないとな……と思いつつ面倒がって布団でスマホを触っていたら、昼の営業時間を逃してしまった。午後2時半くらいにまた寝て、今度は午後8時に起きた。

3時間ほどインターンの作業を行った。先週木曜日に起動したEC2インスタンスについて、自分に知識が足りずできない部分の準備をやってもらっていたが、それが完了したらしい。その上に言っていたツールをインストールしたりの自分でも行える準備を積み重ねることでようやく使える状態になる。数か月前にやったはずなのに完全に忘却していたので調べ調べ進めていた。

何とかいい感じに準備できたのに、最後にちょっと失敗した部分を削除したらツールがエラーを吐いて台無しになってしまった。削除の操作が悪いのはわかるしどう悪いかというのもわかるのに、復元する方法がわからない。アンインストールして入れなおしても初めの状態に戻らず、これはインスタンスから立て直しか……と絶望していたが、データのファイルが残っているのを見つけて削除したらちゃんと初めからになってくれた。

今度はatgolferの復旧作業を行うことにした。先々週にatgolferが一瞬ロックされてから動かしていなかったが、今見たらAPIはまだsuspendされたままだったから削除して作り直した。やはりこれが正しい対応だとは思えない……。とにかく改めてツイートできるようにはなったので、スクリプトを実行して様子を見守っていた。今日も50件投稿して制限がかかり終了。

朝までレポート課題と格闘し、1問解いた。「証明を完成させよ」系の問題。講義の録画を見たらヒントとして自分と違う方針を紹介していたが、自分の書いたものも正しいと思っているのでこのまま出す。数学基礎論だから、やってはいけない操作を知らず知らずのうちにやっていそうで怖くはある。

レポートを書きつつラノベを読んでいた。2冊読了。

1冊目は「才女のお世話」6巻。今巻から自分の大好物である会社経営に関わるストーリーが始まった。前の巻で予告されていたが想像を超えてしっかりビジネスに取り組んでおり非常に面白かった。これまで繰り広げられてきた上流階級ラブコメを下敷きにしてこういう話を読めることが幸せ。後編の7巻もとても楽しみにしている。

主人公のビジネスに関連する才能が発揮されるシーンも良かった。単にヒロインに気に入られているだけの人間ではないという事実が気を楽にしてくれる。つまり、場違いでないのだ。もちろんこれまでも対等な立場になろうと努力している様子は描かれてきたが、この特異さは努力ではどうしようもない部分を埋めてくれる。

2冊目は「無能と言われ続けた魔導師、実は世界最強なのに幽閉されていたので自覚なし」3巻。前巻ラストで致命傷を受けたキャラが復活してびっくり。そういうところは容赦しない作者だと思っていた。今巻ではその報復として主人公が無双する……という感じの煽り文句があらすじに書かれていたが、それほど無双している感じはしなかった。奥義も詠唱破棄されてしまい、それが可能になったことは確かに成長であるとは言え、厨二臭い詠唱がカットされてしまったのは物足りなく感じた。

7月の読書記録を投稿。正確には、起きた時に投稿したものが間違っていたので修正した。今月は特にネット小説三昧だったらしい。

午前10時前に外出し、原付に給油・学食で食事・散髪をこなした。購買でラノベと菓子パン類を買って帰宅。しばらくハーメルンを読んで午後1時半に寝た。

08/02(水)

午後8時から2時間ほど起きてハーメルンを読んでいた。実際に起きたのは午前0時。さらに3時間ほどハーメルンを読んで布団から出た。1時間ほどインターンの作業をした後、セミナー発表のため論文を読み始めたが、大して進まないうちにまた寝た。午前6時半だった。

08/03(木)

午前10時半起床。布団で論文に目を通して時間を過ごし、午後1時前になってシャワーを浴び学食で食事してきた。

シャワーを浴びている間に論文に対する理解を少し深めたつもりになったので、帰宅してからセミナー準備に取り掛かった。しかしやる気が全然出ずかなりの時間をハーメルンに吸い取られてしまった。

セミナー準備とハーメルンを反復横飛びしているような状態でずるずると作業を続けていたが、眠気に耐えきれなくなって午後9時くらいに仮眠を取ることにした。微妙な眠気は昼間からあったので、結局こうなってしまうなら早い段階ですっぱり諦め布団に入っておけば良かった。

2時間ほどして目を覚ました後も布団でハーメルンを読み続けていたが、流石にまずいと思って起き上がり、一念発起して準備を終わらせた。

今日も手動でatgolferを動かしていたら、ついに1日あたりのツイート数制限に引っかからないまま実行が終了してくれた。4月末に停止してからの更新分がほぼすべてツイートされたということ。ほぼと言ったのは、EDPC-Bだけ更新があるのに提出一覧が重すぎてクロールできていないからである。こういう場合はAtCoder Problemsの情報をそのまま使うようにすることを考えているが、まだ実装していない。

ゴミを出した後布団でハーメルンを読み、午前6時半就寝。

08/04(金)

午前9時半起床。明らかに睡眠時間は足りていないが、なぜかすっきり目を覚ますことができた。

午前10時からSRM848に出た。めちゃくちゃ過疎っていてdiv.1がRoom二つ、div.2が一つだった。Room 1に高レートが固まっていたのはいつものこと。

https://community.topcoder.com/stat?c=round_overview&er=5&rd=19668

Easyは、問題は悪くないが問題文が致命的。入力のNが問題文の条件に関係してこない。サンプルを見て「各要素が[0,N]に入っている」という一文が抜けているのだろうなと思い、そのように解いた。指摘してもどうせRatedのままなのだからclarは投げるだけ時間の損である。

解法は結構面白い。各要素からインデックスを引いた列を数え上げることにすれば、求める数列a0\le a_1\le\dots\le a_L\le N-Lかつすべての偶奇が等しいようなものになる。偶数と奇数を両方試せば後は重複組み合わせ。modintを貼らずに書いたため時間がかかってしまった。C++のバージョンが上がってもうCEにはならないのに……。

Medは謎。適当に実験したところA=0の時だけ先手勝ちで、この時の初手は番号0の山と番号が大きい山からK-1個を選べばよいらしい。一切考察せずにそれを書き、祈りながら出した。

Hardは最近よくある怠いだけの問題。桁dpで使った文字の集合ごとに文字列を数え上げ、包除原理をすればよい。桁dpパートは文字列の長さが一定ではないためかなり面倒だが、サンプルが強くて説明も丁寧だったのはかなり助かった。

1時間ちょっとで全完。チャレンジフェーズではMedの他の解法が自分と同じであることだけ確認した。部屋内では「(B,K)=(47,42)のケースでは解を復元せよ」だったのにtypo(47,12)になっていたというクソしょうもない理由で1個だけ落とされていた。かわいそう。

システスも全部通って3位。レートは2831→2860(+29)としょっぱい。Medは、A\gt 0なら後手が真似っこ戦略で必勝、A=0なら上で書いたような初手の後先手が真似っこ戦略を取れるということらしい。後者については番号が大きい山K-1個を初手で少し減らしても取りつくされることがないということも効いている。実験エスパーに身をゆだねてしまったが普通の問題だった。

TopCoderのプロフィールページが一新されたらしい。見に行ったら本当に本名が公開されていてひっくり返った。住所はCityレベルまでしか表示されないので致命的ではない。本名も実際のところ調べれば分かるのであまり気にならなかった。逆に激烈な反応を示していた人が多かったのに驚き。

正午からインターンのミーティング。火曜日に準備を整えたツールがうまく動かないという報告を昨日の夜に受け、自分の手元の環境ではちゃんと動作するからなにかの設定ミスだろうと思い、作業の様子を見せてもらうつもりでセットした。しかし冒頭、正しく動くことの確認のつもりでまず自分が作業したところ、先方と全く同じ状態に陥ってしまった。

データのファイルを削除することで初めの状態に戻すという荒業を火曜日に使ってしまったのが気になったので、別のインスタンスを立ててセットアップをやり直してみたが、こちらでも再現した。もうどうしようもない。仕方ないのでやろうとしていたことを別の方法で行うことでエラーを回避することにした。その場でなんとかコードが書けたので共有し、解散。30分ほどで終える予定が2時間も消費してしまった。

後から確認して手元とEC2上でツールのバージョンが違うことに気づいた。手元の古い方が正しく動くというのはちょっと直感的でないが、おそらくこれが原因だろう。振り返ってみればミーティング中にやったことは自分一人でもできたことばかりだった。ちゃんと調査もせずに原因を決めつけ、軽率に人の時間を奪ってしまったのが非常に申し訳ない。

しばらくハーメルンを読んだ後午後4時前に大学に登校。購買でラノベを買ったり図書館で本を返却したりしつつ教室に辿り着き、午後5時からセミナー開始。今日は自分、指導教員の先生、海外からオンラインで参加する学生の3人しかいない。

最初は海外の学生によるDiestel 5.4章の発表だった。この章は少し前に目を通しておいたので英語の発表でもなんとか付いていくことができた気がする。かなりスイスイ進んで2時間程度で章の内容を終えた。次は5.5章ではなく、以前セミナーをしようとして力及ばなかった論文に再チャレンジすることになった。その論文は5.4章のリスト彩色を使っていたのだ。今なら読める可能性が高い。

発表者はそもそもグラフ理論の用語からあやふやだし、我々も別に論文を読み込んでいたわけではないので、誰も理解していない論文について議論するというギャグみたいな時間を過ごす羽目になった。

週記(2023/04/10-2023/04/16) - kotatsugameの日記

次は自分の発表。これまでも板書は英語で行ってきたが、今日は喋るのも英語にしてみた。しかし全然うまく行かなかった。英語の表現を考えるのに苦しんで、少しの内容を話すのにも長くかかるし大変疲れる。結局用意していたもののうち半分くらいしか説明できなかった。

帰宅して午後9時20分からyukicoder 400に参加した。

yukicoder contest 400 - yukicoder

書く:yukicoder

ハーメルンを読んだり日記を書いたりして午前3時頃に寝た。

08/05(土)

午前7時に目を覚まし、布団でずっとハーメルンを読んでいた。最近はずっと昔読んだ「ウマ娘 ワールドダービー 凱旋門レギュ『4:25:00』 ミホノブルボンチャート」を読み返していて、ついに最新話までたどり着いた。

syosetu.org

この作品は記録に残っている限り自分が初めて読んだウマ娘の二次創作。ウマ娘に関する知識がほとんどなかったにも関わらず非常に面白く読めたことを覚えているが、色々知識をつけて改めて読み返してもやはり面白かった。当時は見落としてしまっただろう、単に匂わせるだけの曖昧な描写にも理解が追いつくようになっていて嬉しい。まあ理解できない匂わせにはそもそも気づけないか。

主人公トレーナーが無敗というのはあんまり意識していなかったが、色々読んだ今はかなり好みの設定だということに気づいた。やはりそういう圧倒的な強さは読んでいて気持ちいい。レース描写が他の作品に比べあっさりしているように感じたのは、トレーナーの手腕でレースに勝つと「来た、見た、勝った」という感じで特に波乱が起こらないからだろうか。その分日常シーンが色濃くて嬉しい。

0700-1200 ハーメルン ミホノブルボン

昼になったので学食で食事。帰宅してしばらく日記を書き、午後4時から仮眠を取った。

4時間くらいで起床し、準備を整え午後9時からABC313に参加。今日はオンサイトの予選仕様らしく配点がいつもと全然違う。

AtCoder Beginner Contest 313 - AtCoder

書く:ABC

www.youtube.com

午後11時半からCF #890 div.2。

Dashboard - Codeforces Round 890 (Div. 2) supported by Constructor Institute - Codeforces

書く:CF(E2 uphack)

www.youtube.com

金曜日の夕方にツールが落ちたとの連絡が来ていたので調査した。インスタンスタイプはメモリ使用量などを調べて決めたのだが、エラーを回避しようとして取った方法がかなり重かったようだ。調査して、そのこととエラーの原因がやはりバージョン違いであったことを特定。さらにバージョンを正しく下げる方法を確立した。インスタンスのスペックを上げるかバージョンを下げるかは使う人の判断に委ねることに。

明日はCOSS2023参加の前泊で京都に行く。先ほどインターンの作業をやっていたのも、これからしばらく稼働できないからである。さらに日記の仙台にいる間に書いておかなければならない部分を書いていたら午前9時になっていた。30分で荷造りをして就寝。

08/06(日)

書く