週記(2025/09/01-2025/09/07)

09/01(月)

午前8時起床。寝る前にも読んでいたなろうをしばらく読み続けていた。

昼前になって身を起こし、先々週の週記を書きながらインターン稼働のためPCをぶん回して計算させていたが、完了する前に定例会の時間になった。進捗の用意に失敗。

勉強会はベクター形式の話だった。ベジェ曲線の定義を知れてうれしい。またベクター形式で表現された漢字等のデータセットが紹介された。書き順の情報が含まれていたり、字体のバリエーションがカバーされていたりと非常によく整備されている。

The Kanji Vector Graphics (KanjiVG) project - KanjiVG

学食で食事を摂り先々週の週記を投稿してから、8月の読書記録をツイートした。かなり頑張って読んだのと、そもそも買った冊数が少なめだったので、ついに積読の増分が負となった。遡ってみるとこれは去年の6月以来のことらしい。しかしその時も今回も、月末・月初めに刊行されたラノベのぶんを前後の月に押し付けているため、実態は怪しい。

そのあとは先週の週記を書き進めていたが、こちらはどう考えても日付が変わるまでに間に合わない。諦めて投げ出し、午後11時半くらいに寝てしまった。

09/02(火)

午前4時半起床。5時間ほど先週の週記を書き進めたあと二度寝して、起きたら午後2時を回っていた。そこからなろうを読んでいたら夕方になった。

シャワーを浴びて閉店直前の購買に行った。今日買うラノベは1冊だけの予定だったが、楽しみにしているシリーズの新刊が本棚にあったのでこれも購入。近いうちに新刊チェックをしなければならない。

夕食を摂って帰宅してから買ってきた本を読んだ。「凶乱令嬢ニア・リストン」9巻。

非常に面白かった。9巻にしてシリーズで一番である。前巻ラストシーンだった主人公の国外追放に至る過程が前半で説明され、後半からは新天地での生活が始まった。新しい国では、もうただの幼女のフリをするつもりはないらしい。設定としても大暴れするに適した状況のなか、枷の外れた主人公が人前でも問答無用でその力を振るっていた。この展開をどれだけ待ったことか!

朝まで先週の週記を書き進め、月曜日に行った寄席の感想をなんとか書き切った。その部分だけで4000文字くらいになったようだ。

午前8時就寝。

09/03(水)

午後6時半起床。布団に横たわったままなろうを読み続け、午後11時半に寝落ちした。本日は以上とする。

09/04(木)

そんなに長い時間眠れるわけもなく、夜明け前から起きてなろうを読んでいた。

「異端勇者は日常を愛している」を読了。完結済み。前半は面白かった。異世界に召喚された回数がそのまま強さの絶対的な序列になっていることが説明され、この点で言葉通り桁違いの主人公の強さが心地よかった。

しかし終盤になるとこの法則は有名無実と化してしまう。主人公のハーレムメンバーはみな、召喚回数に見合わない強さを有していた。こうして主人公の絶対性が崩れ、敵にも主人公より強いキャラが現れる中、なんとかラスボスを倒すといった様相だった。

https://ncode.syosetu.com/n9069es/

昼過ぎまで先週の週記を書き進め、あとは夜中までラノベを読んでいた。

「バスタード・ソードマン」5巻を読了。戦争が勃発した巻。普段通りの日常はしばらくお預けかなと残念に思っていたが、一瞬で終結したし、さらに主人公の活躍するシーンが拝めたので良いことばかりだった。特に後者は期待していなかった分かなり嬉しいサプライズだった。

結構露骨な淫夢ネタがあった。普段からセリフに語録を混ぜてくる作家なのだが、今回はイラストまでそちらに寄せてあり衝撃的。この部分、Web版から特に改稿されてはいないようで、ハーメルンで確認すると圧倒的な感想・ここすきの数を誇っていた。

syosetu.org

ラノベと同時並行でMinecraft実況シリーズ「琴葉姉妹鬼畜MODパックに挑む」を一気見していた。とんでもない作業量なのにほぼすべてカットされており、非常にサクサク進行するので見ていて苦になるところがない。完結してから見ているので、終盤どうしても落ちてしまった投稿ペースも気にならなかった。

www.youtube.com

日付が変わってすぐ就寝。

09/05(金)

午前7時起床。

昨夜行われたICPC World Finalsで東大チームが2位となったことを知った。凍結状態の順位表を見るに優勝は確実だろうと思っていたのだが、誰も解いていない問題をコンテスト終了2分前に通したチームに捲られたらしい。そんな劇的なことがあったとは、Yes/Noを見逃したのが悔やまれる。何にせよ日本チームの最高順位を更新したらしく、非常に素晴らしい結果。

午前中はSageMathのコードを書いていた。時間がかなりかかるのでやりたくなかった計算だが、こういうことでもしないと進捗がない。実測を繰り返してできる限りの高速化を施し、渾身のコードを三並列で回し始めた。改善前より格段に速くなってはいるものの、これでも何日かかることやら。

先延ばしにしていたラノベの新刊チェックも行った。17冊注文。新シリーズにほとんど手を出さなくても、買ったことのあるシリーズの新刊というだけでこのくらいの数になった。

目玉は「暗殺者である俺のステータスが勇者よりも明らかに強いのだが」の5巻。2019年に3巻、2021年に4巻が出てからそれっきりだったので、新刊が出ると知ったときは大変驚いた。それどころか、調べてみると今年の初めにアニメ化・ゲーム化が発表されていたらしい。

4巻を読んだ感想は日記に残っていた。振り返ると、巻数は少なくても最初からかなり売れていたことが伺える。個人的にも好みの作品だったし、さらに作者が同い年ということでも注目していた。1巻発売が2017年だったので、現役高校生のラノベ作家だったということになる。

読んでいたラノベを読了。「暗殺者である俺のステータスが勇者よりも明らかに強いのだが4」。

週記(2021/03/22-2021/03/28) - kotatsugameの日記

ホスフィンに誘われて夕食を共にすることになった。仙台駅まで出て、集合まで本屋をぶらつき2冊購入。「池袋ウエストゲートパーク」の19巻が出ていたのを見つけた。相変わらず一般小説の新刊チェックが甘い。ところで18巻はYandex Cup 2024の帰りに読み切ったらしく、感想を日記に残していない。もう実家へと移動させてあるがどうしようか。

午後6時ごろ合流して「Roti」というハンバーグの店に行った。「カレーチーズハンバーグ」と「焼きシーザーサラダ」。ハンバーグは一向に冷めないうえ量も非常に多く、途中で満腹になって少しホスフィンに手伝ってもらった。サラダはほんのり温かいレタスが非常に美味しかった。

解散してゲーセンに行こうと思ったが、ホスフィンがファミレスで飲むというので着いて行った。バーミヤン紹興酒ハイボールと梅酒を注文し、先ほど購入したラノベを開いた。

「孤高なカノジョと、彼女の部屋でシてること」を読了。酷い人見知りを改善しようと、自己肯定感を高めるために性行為をする話。人見知りを治すだけではキャッチーなライトノベルにならないことは理解するが、そこで性行為を持ち出すのはどうだろう、と言いつつ実のところ自分は引っかかった側。しかし義務的な側面が強く押し出されていて全くそそられなかったのは残念である。

店を出た後、今度こそゲーセンに行って5クレだけ遊んだ。酔った状態で新曲を触っても後日埋めなおすことになるだろうと思いながらプレイしていたが、案外悪くない精度が出た。日付が変わる前に帰宅。

数値計算の進捗を確認すると、思ったより進んでいなかった。初めのころは辺の数が少ないグラフでばかり計算するため爆速だったが、少し進むとグラフ一つ当たりの計算時間が一気に増える。処理を終えたグラフの個数で進み具合を見ているため、所要時間をうまく見積もることができない。

仕方ないのでC++で書き直すことを決意し、SageMathのライブラリに頼っている部分を再現できるか調べるため、GitHubで実装を調べていた。

午前4時半就寝。

09/06(土)

午前10時半起床。午前中はメインのWindows機の環境を少し弄ろうとして失敗していた。

午後1時からyukicoderで「第2回 岩井星人アンソロジープログラミングコンテスト Div.2」に参加。レベルの降順、問題の昇順に解いた。適当に決めた順序だが第1回と同じだったらしい。

第2回 岩井星人アンソロジープログラミングコンテスト Div.2 - yukicoder

Gは点の重みと寄与がどんどん変わっていく。寄与のほうは区間更新なので、遅延セグ木で頑張る。あまり詰めずに書き始めたため混乱して迷走しかけたが、気合いで乗り切った。

Hは結局1200で頭打ちになる。ACタイミングはSを二周した時点で一定になるため適当にシミュレートすれば解けるが、三周目以降でも変わると思い込んだり、BIT上の二分探索を持ち出したりと結構面倒なことをしてしまった。

Fはかなり面白かった。岩井数を任意の回数繰り返したものもまた岩井数になっている。DはbitDP、EはBFS、Bは算数、Aはまあできる。CはWAを出して最後に解くことになった。9の左右のyを大文字にすると、岩井星人が連続しているケースで間違ってしまう。ちゃんと前からパースしていかなければならず、正規表現も使いにくい。

43分で全完。GはFAだったがそれ以外の問題別順位はかなり悪く、時間順でも3位なのに最終的には5位まで落ちていた。

午後2時からはJAG夏合宿のための内部コンテストに参加していた。

午後9時からARC205 div.2。配点を見るに、これまでにないほどの簡単回である。

https://atcoder.jp/contests/arc205

Aは各2x2の白マスで1回ずつ操作する方法がある。二次元累積和でカウント。Bは各頂点において次数のパリティが不変であり、そのもとでの最大値は達成可能。

Cは[\min(S,T),\max(S,T)]からスタートしたりそこを目指していたりする人の移動順序について制約が発生するため、有向グラフのトポロジカルソートで表現でき、区間に辺を張るテクを使えば間に合う。特に疑問を持たず頑張って実装したが、不可能なパターンを除くとかなりシンプルな関係しか残らないことからルールベースで解くのが想定だったようだ。

Dは木dp。部分木のうち頂点数が最大のものでしか同一部分木内でのマッチングは使わなくてよい。Eは平方分割+ゼータ変換が間に合った。さすがにそんなわけないと思って後から考え直し、想定解の下位10bitで配って上位10bitで貰う方法も思いつくことができた。しかしゼータ変換のほうも通す制約だったようだ。

1時間で全完したのに32位。まんべんなく遅いが、Cで重実装をやり切ってしまったのが一番のタイムロスだった。

www.youtube.com

数値計算C++実装に取り組んだ。鬼門だったグラフの全列挙については、SageMathで使われていたライブラリ「nauty」を自分でも使うことにした。C++との連携を考えずとも、生成したグラフをファイルに書き出しておいて、それを読めばよい。そもそもそれならSageMathを使ってもよいわけだが、ここでもちょっと速度を気にした。

Nauty Traces – Home

ほか全ては気合いで実装した。頭のいいことをしていると思っていたパートも、実装を読むと単なる全探索だということが判明したので何とかなった。多倍長整数が必要になるところもあったが、最終的には非ゼロの判定だけできればよかったので、modintで代用した。一応modを二つ用意して信頼性を上げている。

朝方コードが完成し、すでに計算済みの箇所での検算にも成功したため、いよいよ実行。三並列から四並列に増やしたこともあるが、SageMathでこれまで40時間ほどかけて進んだ部分まで1時間ちょっとで計算が完了し、感動した。

午前7時就寝。

09/07(日)

午後1時少し前に起床。寝ている間にプログラムが終了していた。6時間以上かかったので、あのままSageMathを回し続けていたら十日以上必要だったという見込みになる。

午後1時10分からABC422に参加。オンサイトコンテストと同時開催のため、日曜日のこの時間になっている。代わりにARCが土曜日に行った。

https://atcoder.jp/contests/abc422

A、Bはよい。Cでは二分探索しかけた。DはK/2^Nのfloorとceilを並べる。最初、適当に並べすぎて全然バランスが取れていなかったが、提出前に気づくことができた。Eは乱択。直線の方程式を求めるところでちょっと詰まった。Fは移動回数を決め打ってdpを開始し、ちゃんと残り0回で到達できたときの答えを見る。GはFPS

信じられないくらいの簡単回だった。28分で全完して5位。上位には速解きでしっかり差をつけられた。

www.youtube.com

午後3時からはJAG夏合宿のための内部コンテストに参加していた。

昨日09/06、秋篠宮家の悠仁親王殿下がお誕生日をお迎えになり、「成年式」が行われた。今年の春に筑波大学に入学され、入学式後のサークル勧誘でチラシをお受け取りになるエピソードがTwitterでバズっていたのは記憶に新しい。大学生活のご様子についてもいろいろ報道があったが、まさに一般的な大学生という装いのお写真が多かった。しかし成年式での御装束を拝見して目が覚めるような思いをした。

www.instagram.com

敬語終わり。このような装束を写真や動画で見るたび右手の小指が気になっていたので、この機会に調べてみた。まず右手に持っているものが「笏」だということを知るのにひと手間かけたが、そのワードで調べると記事はいろいろ見つかった。笏の持ち方には「把笏」として厳格な規則が整備されており、通常右手の指で挟むように保持するとのこと。このとき裏側に回るのが親指と小指なので、正面からは指が三本しか見えない。

笏(しゃく)の持ち方 | 広島市安佐南区伴中央 岡 崎 神 社

午後11時半からCF #1047 div.3に出た。

Dashboard - Codeforces Round 1047 (Div. 3) - Codeforces

Aは2^k\times x。Bはp_i+q_i=n+1とする。Cは(ab,1)(ab/2,2)を目指す。Dは同じbを持つインデックスをb個集めて値を割り当てていく。

Eは0が一つもない場合即座に長さ2の周期に入り、二個以上ある場合は1ステップおいて同様の周期に入る。ちょうど一個のケースについては、今度は1に注目して同様の議論が行える。結論としては、二回操作すると必ず周期に入るためk\le 3としてよく、あとは愚直に操作。

Fは大変。lから右に見ていったときの累積MAXで答えに寄与する条件が書けるが、特にlを小さくしていくと条件がどんどん緩くなる。lをデクリメントするたび値の小さい順に答えに寄与するようになるため、セグ木の区間MINを使って取得し、その後はセグ木から情報を消すようにした。

Gはクエリ1が来るたび後手勝ちの状態が増える一方なので、先手勝ちから後手勝ちに変化する点だけ列挙できればよい。これは通常の後退解析のように計算していくだけでOK。与えられた点からグラフを遡るだけなので、トポロジカルソートなども不要だった。

42分で全完して7位。Gの初期化ミスで出したWAがなければ4位だったのが残念。

www.youtube.com

夜中には皆既月食があった。一応外に出てはみたものの、その時間帯は曇り空でよくわからず。雲の隙間はいくらかあったので、粘っていれば見えたかもしれない。

午前4時半就寝。