読書記録(2024)

kotatsugame.hatenablog.com

1月

  • 12日
    推しにささげるダンジョングルメ01
  • 14日
    性別不詳VTuberたちがオフ会したら俺以外全員女子だった

2月

  • 2日
    放課後、ファミレスで、クラスのあの子と。
  • 21日
    一生働きたくない俺が、クラスメイトの大人気アイドルに懐かれたら5
    双子まとめて『カノジョ』にしない?2

3月

  • 20日
    アルゴリズムの乙女たち
  • 22日
    玄関前で顔の良すぎるダウナー系美少女を拾ったら
  • 23日
    物語に一切関係ないタイプの強キャラに転生しました

4月

  • 10日
    迷宮狂走曲2
  • 11日
    凡人転生の努力無双
  • 14日
    凶乱令嬢ニア・リストン4
  • 15日
    凶乱令嬢ニア・リストン5
  • 16日
    S級冒険者が歩む道2
  • 20日
    無能と言われ続けた魔導師、実は世界最強なのに幽閉されていたので自覚なし4
  • 21日
    家事代行のアルバイトを始めたら学園一の美少女の家族に気に入られちゃいました。
  • 23日
    国歌を作った男
  • 24日
    怠惰な悪辱貴族に転生した俺、シナリオをぶっ壊したら規格外の魔力で最凶になった
  • 27日
    スクール=パラベラム2
  • 28日
    魔王の元側近は勇者に転生しても忠誠を捧ぐ
    許嫁が出来たと思ったら、その許嫁が学校で有名な『悪役令嬢』だったんだけど、どうすればいい?4
    ツンな女神さまと、誰にも言えない秘密の関係。
  • 29日
    バスタード・ソードマン3
  • 30日
    やる気なし天才王子と氷の魔女の花嫁授業
    依存したがる彼女は僕の部屋に入り浸る2

5月

  • 1日
    現実離れした美少女転校生が、親の決めた同居相手で困る
  • 2日
    平民出身の帝国将官、無能な貴族上官を蹂躙して成り上がる
    戦地から帰ってきたタカシ君。普通に高校生活を送りたい1
  • 4日
    冬季限定ボンボンショコラ事件
    最強魔法師の隠遁計画18
  • 5日
    VTuberの幼なじみと声優の幼なじみが険悪すぎる
  • 7日
    クラスで2番目に可愛い女の子と友だちになった6
    ネトゲの嫁が人気アイドルだった4
    才女のお世話7,8

週記(2024/04/29-2024/05/05)

04/29(月)

午後7時起床。今日は休日のためインターン先定例会が休みだった。先週の週記を書いて午後11時半に投稿し、直後からECR165に出た。

Dashboard - Educational Codeforces Round 165 (Rated for Div. 2) - Codeforces

Aはp_{p_i}=iなるiが存在すれば2、そうでなければ3が答え。Bは左の0から順にすべての1より左に持ってくるのが最適。1の個数をカウントしながら見ていくとコストがわかる。Cは区間を選びその左右どちらかの値で置き換える操作だと思うことができる。dp。

DはbでソートしてBobにとっての無料と有料の境界を全探索。境界の上は下位k個を優先度付きキューで持ち、下は\max(b-a,0)の総和を持った。Eはuniqueでない区間のうち右端が最も左にあるものを見つけ、その右端を置き換えることを繰り返す。区間を見つけるためには右端を固定した状況で各値がカバーできる左端を管理すればよく、区間ADD区間MINでカバーされていない点を探すテクで処理できる。

Fは手札に揃ったカードがあれば貪欲に出してよい。そうでないなら手札に全種類のカードが1枚ずつ揃っているから、それがどのタイミングで発生するかを考えてdpした。例えばa_iを引いて手札が一杯になったとする。a_{i+1},\dots,a_jのうち奇数回登場したタイプがuvの二つのみ、かつそのようなj区間(i,j)に存在しないとき、uvを捨てると次に手札が一杯になるのはa_jを引いたタイミングだとわかる。3乗だが定数倍が非常に軽いため全く問題なかった。

全完3位。Eのテクは最近やたら見る気がする。

www.youtube.com

ラノベ「バスタード・ソードマン」3巻を読了。信じられないくらい面白かった。ただの日常の積み重ねなのに相変わらずやたら面白いなと思いながら読み進めていたら、ラストでぶっ飛ばされた。これまで読者にすら隠されてきた主人公の本当の実力が一部明かされたのだ。シーンとしては危機が迫るなどの大きなイベントがあったわけではないが、これまで3巻分の積み重ねがあったこその魅せ方で、最高に強烈だった。

ゴミ出しをするつもりだったのに、とりあえずもう一冊と手を出したら途中で眠気に耐えられなくなり、そのまま寝た。午前9時。

04/30(火)

午後7時起床。夜中までラノベを読んでいた。

「やる気なし天才王子と氷の魔女の花嫁授業」を読了。能力の代償が重すぎるように見えて辛い。ネタバレになるが主人公の代償はやる気のなさに繋がっており、そのせいでヒロインへの気持ちが表れにくく、代わりにヒロインと関わる理由として契約・約束が何度も強調され、窮屈に感じた。

午後11時半からCF #942 div.1に出た。

Dashboard - Codeforces Round 942 (Div. 1) - Codeforces

Aは最終的なaに対するn\times\min(a)-n+1+\#\{a_i\gt\min(a)\}が答えなので、\min(a)を大きくするのがよい。最大いくつを達成できるか二分探索し、余ったものは最後の項を大きくするように割り振った。

B1とB2はあまり関係がない。B1はabの倍数になるから、あとは算数。bの全探索によりO(m)になる。B2はg:=\gcd(a,b)とするとg(a+b)/gの倍数になるため、a/g\le\sqrt nb/g\le\sqrt mの範囲を調べればよい。全探索でO(\sqrt{nm})

Cは先頭から順に決めていった。f^k(a)_ikに関する多項式で表示し、i乗和の公式をi\lt 20くらいまで求め、それを使って計算。多項式の扱いに慣れていなかったが一発で合って良かった。しかしそうやってべき乗和の公式によって計算した値は、寄与を考えるとBITを表す木のパスに沿った累積和k回だから2項係数で求まってしまうようだ。

Dは二分探索を考えると、先頭から順に、functional graph上で移動可能な範囲にあるできるだけ小さい値を取っていくのが良い。これだとHLDやセグ木が乱れ飛んで計算量に大量に\logがつくので見方を変える。目的の値をどんどんインクリメントしつつ、そこに到達可能かを判定することにすれば、ただ2点間の距離を求めるクエリになって、部分木判定などによりO(1)で実行できる。

E1が上限と下限付きランダムウォークになることには気づいたが、計算できずコンテスト終了。5完41位でレートは2807→2856(+49)となった。

www.youtube.com

E1をupsolveした。mが小さいときはO(nm)のdp、mが大きいときは鏡像法で解けるらしい。鏡像法はうまい具合に\dots,+1,-1,+1,-1,+1,\dotsを配置するタイプのもので、ゴールにたどり着ける始点がO(n/m)個しかないため計算量O(n^2/m)となる。

TCB 2024/03回2位の賞品、アマギフ7000円分が届いた。

ラノベ「依存したがる彼女は僕の部屋に入り浸る」2巻を読了。相変わらず面白かった。ハーメルンと突き合わせてみると、やっぱり今回も書き下ろしの章が複数あるらしい。ストーリーも時系列も、主人公の印象すら崩さずにうまくラブコメ色を強めたものだと感心する。また挿絵もよい。特に、1巻でもチラッと見えていたが、主人公が本当に納得感のある容姿をしていて素晴らしい。

届いていた外付けSSDに過去の動画をいくらか移した。2023年までのCFの動画を移動させたところ60GBほど空いたので、熱を持ってきたこともあり一旦終わり。外付けSSDは思ったよりコンパクトだったからなんだか信用できない気がしたのだが、小ささは技術の発展の現れであり、信用すべきでないのは6年以上使っているPCのほう。

過去の動画がPCストレージを圧迫しており、そろそろ何とかする必要がある。消すのもなんだか良くない気がしたので、外付けSSDを買ってそちらに溜め込むことにした。

週記(2024/04/22-2024/04/28) - kotatsugameの日記

修論英訳の作業をして午前11時半就寝。

05/01(水)

目覚ましで午後4時に起床。サークルバチャに参加するつもりだったが眠すぎて二度寝……しかけたその時、後輩からセミナー発表資料が送られてきた。読んでいたら目が冴えた。

午後4時40分からサークルバチャ。ARC088Cに取り組んだら、順列pの転倒数が\sum_i|i-p_i|で求まると思い込んでとんでもないことになってしまった。今日は大学の教室の予約がいっぱいで取れなかったらしく、Google Meetで感想戦をして終わり。

https://kenkoooo.com/atcoder/#/contest/show/b33dceb0-9699-47c4-bc41-63776efe9a31

E - Papple Sort

後輩のセミナー発表資料を読み切っていくつかコメントを送り、4月分の読書記録をツイート。買った冊数が少し控えめ、さらに後半頑張っていたので3月までよりはマシといった感じ。それでも増分が正なのは変わらず、今年に入ってからだけで積読が100冊超増えたらしい。

ラノベ「現実離れした美少女転校生が、親の決めた同居相手で困る」を読了。ヒロインが献身的すぎて読んでいるだけで申し訳なくなってくる。過去に主人公の言葉で救われたという話だが、そのエピソードと現在の主人公へ向ける愛情にバランスが取れていないと感じた。

午前2時くらいまで日記を書いた後修論英訳に取り組み、シャワーを浴びて午前7時就寝。

05/02(木)

05/01発売のラノベを10冊注文していたらしいので混んでいない時間を狙って受け取りに行く必要がある。ということで頑張って午前11時に起きて大学に向かった。無事受け取った後は学食で食事。この時間にすでに牛乳が売り切れていて愕然とした。購買にもなかったし、販売を停止してしまったのだろうか。

いったん帰宅して荷物を整理し、今度は山に登って午後1時から後輩のセミナー。予備知識として必要になった閉曲面の分類の話だったが、難しかった……。すべての補題を証明しきることはできず、いくつかの補題を認めた上での議論。また展開図の上でグラフを描くのにも慣れていないようで手こずっていた。あまりに苦しいので次回はまた別の論文を読むことになった。

論文の話をしたり、秋から新たに受け入れる留学生に何をしてもらうか相談したりして午後6時過ぎ解散。学食で後輩と夕食を摂った。APG4bを少しずつ進めてくれているそうで、取り組んでいるのを見守った後コードを少し手直しさせてもらった。アルゴリズム小話として素数判定をO(\sqrt N)で行う話をし、午後8時帰宅。

Webページをいくつか読んで時間を過ごし、シャワーを浴びて午後11時半からCF #943 div.3。

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

Aは\gcd(x,y)\le x-yなのでy=x-1とすれば最適。Bは部分列判定で失敗した位置を答える。Cはa_n=10^9から降順にa_{i-1}=a_i-x_iと決めていった。Dはn回以下移動した後そこに留まり続ける。始点n通りすべてに対してスコアを求めようとしてしまったが、P_BP_Sからだけで十分。それぞれO(n)かけてよい。

Eは(1,1),\dots,(1,N-2),(2,N),(N,N)。Fはk=2またはk=3で、累積XORを見て判定。Gはhard versionを直接解いた。LCPの長さfを決め打つと、suffix arrayを見ながら貪欲に分割していくことでf\le f_kなるkの最大値が求まる。これはN/f以下なので、貪欲に分割する部分を1回あたりO(\log n)でできればあとはそれを繰り返すだけでよい。

全完7位。

www.youtube.com

ゴミを出し、寝るまでラノベを読んでいた。2冊読了。

1冊目、「平民出身の帝国将官、無能な貴族上官を蹂躙して成り上がる」。規則と証拠をもとに相手を言い負かす行為、これに憧れたことがないと言えば嘘になる。ただ現実では無理だろう。規則の文面や相手の発言を一言一句覚えきるのも、日頃の行動から瑕疵をなくすのも不可能。というわけで、主人公がやって見せたのは読んでいて楽しかった。ただしその対象となった敵キャラが周りに多すぎて、足を引っ張られまくっているのが辛い。

2冊目、「戦地から帰ってきたタカシ君。普通に高校生活を送りたい」。面白かった。向かうところ敵なしの主人公たちがドタバタしていて楽しい。紙幅が足りなかったようで肝心の高校生活については次巻以降。ただ一点、作品の軽快さに比べ、徴兵されて生還した主人公に対する家族の反応が重すぎると思った。それは重いのが当然の反応とは言え、そこまでニヤニヤしながら読んでいたのが申し訳ないような気持ちになってしまった。

午前7時半寝落ち。

05/03(金)

午後7時起床。本を読んでいた。午前3時ごろ寝落ち。

05/04(土)

午前6時半起床。昨日に引き続き本を読み進め、午後1時ごろ「冬季限定ボンボンショコラ事件」を読了した。大満足!自分はいかなるネタバレも踏まないようにと早めに読んだので、そういう配慮をここでもしておこう。普段書いているような感想は下に隠しておいた。

感想(ネタバレ注意)今作はほとんどの部分が小鳩君による、小佐内さんと出会うきっかけとなった過去の事件についての回想だった。あらかじめ良い終わり方をしないとの前振りがあった上では読むのにも気合いが必要だったが、頻繁に現在のシーンが挟まれて一息つけたため、あまり負担にはならなかった。

過去の事件の終わり方は確かに最悪と呼べるものだった。しかしその直後から始まる現在の事件の解決編が強烈で、全体としての印象はそちらが目立つ。良い結末と言えるかは微妙なところかもしれないが、二人らしいものだったことは確か。またそれとは別にシリーズとしての締めもあって、そちらははっきりと良かった。

伏線はどれも明確に指摘できなかったが、知ってから振り返れば確かに違和感を覚えた箇所はあった。具体的に挙げるのはよしておく。ただどれも(どれもと言うほど数はない)、詳細な描写がなかったので勝手に解釈してしまったらしい。そういう伏線は明かされないと気づけないのに、明かされると悔しい思いをする。

小鳩君が最初に日坂くんを見舞った際、日坂くんの姉らしき人物とすれ違ったのには気づけた。わざわざ描くくらいだから何かあるのだろうと思って覚えておいて、後半で姉の特徴と一致することを知ったため興奮。しかし結局本文中で触れられることはなかった。そういう明かされないままの伏線が他にもあるのだと思う。

しばらく仮眠して午後3時半にまた起床。急いでシャワーを浴び、午後4時からUniversal CupのチームでCFの謎4.5hに参加した。

Dashboard - Helvetic Coding Contest 2024 online mirror (teams allowed, unrated) - Codeforces

書く

G問題はCodechef Lunchtimeからの剽窃だったらしい。

https://codeforces.com/blog/entry/129149?#comment-1146461

先生からメールが来ていた。修論でも引用した論文の著者が4月に新しく論文を出しており、やっていることが自分の修論と非常に似ているらしい。ヤバすぎる!来週木曜日のセミナーは先々週の続きではなくその論文を読むことにした。

これまでチンタラ準備してきた論文が紙くずになってしまったかもしれず動揺を隠せないが、とりあえず今はコンテストに向き合う。パックご飯を腹に詰め込んで午後9時からABC352。

AtCoder Beginner Contest 352 - AtCoder

Aは\min(X,Y)\lt Z\lt\max(X,Y)か判定。Bは問題文が読みにくいが部分列判定と同じことをすればよさそう。Cは\sum A+\max(B-A)。Dはaを全探索し、インデックスをsetで管理して最大・最小を求めた。Eは(A_{i,j},A_{i,j+1})という辺だけ取り出してクラスカル法。Fは連結成分を一つ取り出して残りをbitDPすることを繰り返した。O(N^3 2^N)

GはABC331Gと似ていると思い、S\subseteq{1,\dots,N}に対して取り出した靴下の多重集合がSになる確率を求め足し合わせた。ただ、n回以上操作する確率をn\ge 0で足し合わせるほうがよほど自然だし、結局計算はn=|S|でまとめて行うためそちらを経由することになる。

G - Collect Them All

29分弱で全完し6位。かなり調子良く解き進められたと思ったものの、周りはもっと速かった。コードゴルフはAをdc、CをNibblesで。Aは(Y-Z)(Z-X)が正か負かで判定したがNibblesに負け。入力をソートしてZの位置を検索するのはかなり上手い。

www.youtube.com

コンテストを終えてもまだ精神の安定は戻っていなかった。今更じたばたしてもしょうがないと開き直り、ラノベを開いた。

「最強魔法師の隠遁計画」18巻を読了。ようやくテンブラムが開幕したかと思ったら本の前半しか使わず早々に終了してしまった。あまりにあっけないし主人公もほぼ活躍せず残念……と思ったら見せ場は後半に待っていた。久しぶりの主人公の全力バトル。最高だった。あとがきによれば次巻は舞台が変わるらしい。なろうと照らし合わせると、もしかしたら第5部冒頭のルサールカ訪問のことを言っているのかも。待ちきれない!

第5部冒頭のアルスが第1魔法学院を視察する話はかなり好きなので、早く本で読めないかとかなり前から心待ちにしている。

週記(2022/12/26-2023/01/01) - kotatsugameの日記

朝になってようやく論文の確認を始めた。読んでいくと、幸い自分の結果とは異なる、どころかいくつかは自分の結果に含まれるようなものだったので一安心。自分もいい加減けりをつけてarXivにでも上げてしまわなければならない。

正午就寝。

05/05(日)

午後10時起床。

ラノベVTuberの幼なじみと声優の幼なじみが険悪すぎる」を読了。面白かった。思ったより険悪でびっくりしたが丸く収まってよかった。ヒロインたちの仕事を応援する主人公の立ち位置が、遠くはなく、近すぎもせず、ちょうど良く感じた。炎上を鎮火するくだりはちょっとうまくいきすぎかなと思った。

日付が変わったころに布団を脱出。食事して少しだけインターン関連の作業を行い、日記を書き始めた。午前7時ごろからは昨日読んでいた論文のセミナー準備に移り、シャワーを浴びて正午前に就寝。

週記(2024/04/22-2024/04/28)

04/22(月)

午後2時起床。食事した後少しだけインターン関連の調査を行い、午後3時半から定例会に出席した。

進捗報告で先ほどの調査について触れたところ、別部署の詳しい人に聞けばすぐ解決できそうなのだからそうすべきと指摘を受けた。まさにその通り。別のプロジェクトでの件も合わせた質問用ミーティングが開かれそうになったので、それは自分にとっては過剰だなと思っていたが、結局テキストベースのやり取りを行うということで落ち着いた。気軽な形でありがたい。

勉強会はOptunaの話だった。評価関数の形を予測するというふわっとしたイメージがあったが、これにはカーネル密度推定という名前の付いた手法があって、それをもとにどう探索するかという部分にもいろいろ工夫があるらしい。ここでもベイズの定理が登場するようだ。

Yandex Cupの賞金振り込みについて、PayPalは使えないとの連絡が来た。あとは親の銀行口座に送ってもらうか、自分で開設するか。ちょっと調べただけでは現在ルーブルの取り扱いをしている銀行が見つからなかったため、地方銀行ではまず無理だろうということで仙台に戻ってから都市銀行の口座を作ることにした。

Yandex Cupの賞金振り込みが遅いなと思っていたら、ゆうちょ銀行への送金に失敗していたらしい。とりあえず、以前ダメと言われたPayPalが使えないか改めて聞いてみることにした。

週記(2024/04/15-2024/04/21) - kotatsugameの日記

食事、入浴を挟みつつ先週の週記を書いて、日付が変わる前に投稿。日曜日の部分が少し穴あきだったが、それも追記して埋めた。

ハーメルンでR-18小説「好感度を1上げる能力」を読了。テンポの良さで導入の丁寧さと簡潔さが両立されていた。

https://syosetu.org/novel/337948/

毎月恒例ラノベの新刊チェックを行った。39冊買おうとして、多すぎるなと思い6冊減らして注文を確定した。シリーズ1巻を買ったらその先も買い続けたいというこだわりがあるので、減らしたのはどれも新作。1巻から積んでいるシリーズの続刊なんてまた積むに決まっているのだが、このこだわりの止め時が見当たらない。

修論と少し格闘して午前6時前就寝。

04/23(火)

午後3時起床。食事してからはずっと本を読んでいた。

午後8時頃、少しだけ公文式の教室に顔を出した。今日はこの時間になっても生徒が多く残っていて、まだ忙しかった先生とはあまり話ができなかった。すぐ帰るのも寂しかったのでその場にいた高校一年生と話をしたのだが、せっかく質問してもらっても高校時代の勉強の話を何一つ覚えておらず、まともな返答ができなかった。ただ邪魔しただけになってしまい申し訳なさを感じる。

午後10時になってから食事。昼食が遅かったので自分だけ夕食をずらしてもらった。しかしこの夕食が今回の帰省で最後に両親と食卓を囲むタイミングだったことに気づき、ちょっと悲しい気持ちになった。

日付が変わったくらいで本を読み終えた。先週日曜日に買ってきた「国歌を作った男」。1本は別の短編集で読んだことがあったが、内容を完全に忘れていたため今日もまたオチで衝撃を受けた。ただこれは今回の短編集の中では異色の作品で、ほかは大なり小なり暖かさのある終わり方だったと思う。

「パニック──一九六五年のSNS」はミステリ風味。

週記(2022/10/31-2022/11/06) - kotatsugameの日記

表題の「国歌を作った男」は、短編集をまとめ上げるために必要な要素は含んでいるのかもしれないが、人種に関する部分だけ浮いているようで違和感。また帯の煽り文から受けるポップな印象とも異なり、あまり好みではなかった。逆に、特に好みだったのは「料理魔事件」、「三つの月」、「十九路の地図」。

一つ目は主役二人のとぼけたやり取りが笑いを誘い、真相のエグみを和らげている。二つ目では米澤穂信さんの「さよなら妖精」を想起した。あとがきには「パニック──一九六五年のSNS」のラストが影響を受けていると書かれていたが、おそらく異国人とのすれ違いを受け継いだそちらに対し、こちらではすれ違わなかったifの世界が描かれたように感じた。三つ目はストレートに状況が好転していき爽快な読後感を得た。

入浴後、ラノベ修論・日記といろいろやって午前6時就寝。

04/24(水)

午前11時半起床。昼食を摂って荷物をまとめ、母に駅まで送ってもらった。新幹線は北陸、東北共に外国人観光客だらけだった。

車内でラノベ「怠惰な悪辱貴族に転生した俺、シナリオをぶっ壊したら規格外の魔力で最凶になった」を読了。面白かった。原作主人公を叩き潰し何もかもぶっ壊す、と決意しておきながら人助けしたりと行動がブレブレな主人公だが、むしろそれが良い。完全に悪役となるのは悲しいし、かといって最初から友好的な態度をとるのも不自然。

午後5時頃仙台に到着。その足でゲーセンに向かい、8クレプレイした。なんだか精度が悪く特に成果はなし。丸亀製麺を食べて午後8時前に帰宅。

シャワーを浴びた後、明日のセミナーに向けた準備をした。午前3時までかけて一区切りつけ、その後修論の英訳を書き足して午前6時半就寝。

04/25(木)

午前11時起床。二度寝できず1時間ほど布団で横たわっていた。昼過ぎから夜のはじめ頃にかけて降水確率40%と予報されているのを心配しつつ、原付で登校。学食で食事してセミナーの教室に向かった。

午後1時からセミナー開始。いつの間にか指導教員の先生が連絡を取っていたらしく、急に学内の別の先生が二人いらっしゃってかなり緊張した。今日話そうと準備していた話題は二つあって、片方は専門的な話だったからボロは出なかったが、もう片方は線形代数微積分学の基礎的な理論を用いて議論するもので、学部レベルの知識が身についておらず失笑を買う場面があった。ただ一人で準備して詰まった部分を解決してもらえたのでありがたい話ではある。

後輩が集中講義に向かうのを見送った後、先生と修論英訳に関する打ち合わせをして解散。学食で食事して午後7時過ぎに帰宅した。天気が崩れなくて一安心。

帰宅後、CF #941のテスターをした。この回は去年のYandex Cup Finalから1問使われるということで、Telegramで参加しないようお達しが回ってきていた。同時にテスター募集もしていたので、せっかくだから応募してみたという経緯。今週土曜日のコンテストなのでここに感想を書いてもよい、が、土曜日の日記のほうに書くこととする。なぜなら、コンテストが開催されてからでないとわからない情報も交えて書きたいから。

シャワーを浴びて午前0時からSRM854に参加した。

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

Easyはなかなか難しい。集める点をxとして計算したところ、|B_i-x||x|の線形和になった。中央値が最適となる典型に見えるが、重みが負だったりしてよくわからない。ただx=B_iあるいはx=0のみ試せばよいことは証明できたので、そうした。左右に1ずらしたときの差分を考える手法で、x=\pm\inftyが最適でなければ任意の重みに対してこのことが言えるようだ。真面目に考え込んでしまいかなり時間を食った。

Medは「以上」で数えて包除原理を行い「ちょうど」に書き換えるだけでほぼ自明。Hardは何もわからなかったので、パターン数の計算から出る自明な上界を埋め込んで提出した。

システスではEasyがバカスカ落とされていた。どうやら最初から揃っているケースの処理を忘れた人が多かったらしい。Hackで点数を稼いだ人の提出も落ちていき、Hardを落とされつつも2完確保した自分の順位はそれほど下がらなかった。最終的には5位。ただレートは2910→2904(-6)と下がってしまった。なかなか厳しい。

CFのテスター作業の続きとして問題文のチェックをしていた。これが午前4時くらいまで。その後何をやっていたのか定かではないが、Chromeに履歴がないのでたぶんスマホYouTubeでも見ていたのではないか。午前6時前に就寝。

04/26(金)

午前10時半起床。昼休みで混み合う前に大学生協でいくつか用事を済ませてきた。

まずはラノベの受け取り。いつの間にか18冊溜まっていたので、受け取った後一度帰宅して荷下ろしした。購買が空いているタイミングだったので行列を作ったりすることにはならず、よかった。

その後食事を済ませたら正午近くなって、生協前は大混雑。ただメガネ屋まで混むわけはないので、新しいメガネは問題なく受け取れた。フレームがしっかりしているメガネは本当に久しぶり。顔を押さえつける感覚が嫌いだったが、緩めにしてもらったらあんまり気にならなかった。

その場で新調することに決めた。帰省から帰ってきたら受け取る。

週記(2024/04/15-2024/04/21) - kotatsugameの日記

帰宅して荷物を整理し、また外出。月曜日に行っていた都市銀行に口座を開設する話で、三菱UFJ銀行に行ってみることにした。どうせ銀行窓口なんて信じられないくらい待たされるんでしょう、とラノベを1冊掴んで行ったが、あにはからんや即座にタブレットの前に通されて手続きが開始された。本当にただのタブレットにブラウザを表示しているだけだから、入力時の予測候補に平気で他人のメアドが出てきて仰天。

口座の開設目的について、外国からの送金を受け取るという選択肢はあるのだが、何の送金かまで答えなければならない。当然賞金なんていう選択肢はないので、どうすればいいか人を呼んで聞いた。この際バカ正直に「普段使いしている口座では受け取れなかったので来た」「今回の送金を受け取ったら用済み」と答えたらかなり渋い顔をされ、口座開設が銀行と個人の取引の開始という重大事であることを認識した。

手続きの最後に、通話が繋がっていくらか質問を受けた。上で述べたことを再度説明したほか、賞金を受け取ったのがプログラミングの大会であること、またプログラミング関連の仕事で給与があることを話した記憶がある。通話が切れ、無理そうだなと思いながらしばらく待っていたら、なんと口座開設に成功した。何が決め手だったのだろう。やはり実家から持ってきた印鑑を登録したのが良かったのだろうか。

その後ゲーセンに向かった。今日は新曲埋めでも特に14+をプレイ。ずっと逃げ回っていたので未プレイ曲が溜まっており、今日解禁したものも含め7譜面埋めた。うちAJは4譜面。

「FLUFFY FLASH」が出たのはかなり驚きである。初プレイでいきなり2アタ、3プレイ目で揃った。今日は手の動きが速かったらしく、例えば最後のトリルは追い越しかけた記憶がある。途中に一瞬だけ降ってくる大宇宙ステージが難所で、ジタバタしたらたまたま通った。入りすらよくわかっていない。

「エータ・ベータ・イータ」の縦連はちゃんとスライダーの上下に手を置くことを意識したらうまくいった。それにしても赤10個はうまく行き過ぎだと思う。あと二つはまあ簡単。

また「MarbleBlue.」のSSSが出たのは嬉しい。譜面動画を見て無理そうな雰囲気を感じていた。特に「AstrøNotes.」を苦手としているためその引用部分が厳しいだろうと思っていたのだが、案外擦れる。擦りの入りに目立つ4鍵階段があるのが大きい。しかしこれならと思って「AstrøNotes.」をプレイしても1回しか通らなかったし、その回は1アタだった。無念。「AstrøNotes.」のほうが少し速いようだ。

疲れたのでカフェに移動し、軽食を摂ってからラノベを開いた。広い店内はガラガラで、心配にはなるが罪悪感なくいつまでも居座れる。結局閉店時間の午後10時まで読みふけっていた。

再度ゲーセンに移動。先ほどまでのGiGO仙台ではなく閉店の遅いスーパーノバ仙台一番町店へ……と思ったらいつの間にかその店もGiGOに変わっていた。まあ名前が変わっただけに見えるので問題なし。

金曜日は東北大学音ゲーサークルの定例の集まり、いわゆる「金曜奴」が開催される日で、音ゲーコーナーは大混雑。さすがに店を変えようかとも思ったが、案外CHUNITHMをプレイする人が少なく、待ち時間は短かった。店を変えると閉店時間が早まるため、ここで粘っていたのとどちらが多くプレイできたかは謎。

ここでは14+の未プレイとして残っていたULTIMA 2譜面を埋め、未鳥1に戻ってきた。「BlythE」の2アタは奇跡。序盤で出してしょんぼりしながらプレイしていたら後半がAJで通った。多分もう無理だろう。

今日は20クレ+7クレプレイ。ラーメンを食べ、ドンキに寄って日付が変わってから帰宅した。早速Yandex側に銀行口座の情報を送った。

シャワーを浴び、ラノベを読んで、午前6時過ぎくらいに寝落ち。

04/27(土)

午後2時前に起床。Universal Cup Semifinalに向けチーム練習をする。セット決めでもたつきながらもこどふぉGYMから星5のコンテストを見繕い、25分くらいに開始した。今日は「2019 Petrozavodsk Winter Camp, Yandex Cup」。

Dashboard - 2019 Petrozavodsk Winter Camp, Yandex Cup - Codeforces

書く

午後9時からABC351に出た。

AtCoder Beginner Contest 351 - AtCoder

Cまではよい。Dはまず磁石に隣接していないマスをUFで結んでから各連結成分の外周を考えた。Eは45度回転。Fはやるだけ。

書く

Dashboard - Codeforces Round 941 (Div. 1) - Codeforces

Dashboard - Codeforces Round 941 (Div. 2) - Codeforces

テスター作業は、GYMのコンテストに招待され、そこでdiv.1とdiv.2まとめてバチャを走る形で行われた。後から問題文についてはチェックしたが、それ以外は特別テスターらしいことはしていない。実はupsolveもまともにしておらず、自分が解いたのはdiv.2のAからF問題、つまりdiv.1ではD問題までだった。

書く

www.youtube.com

過去の動画がPCストレージを圧迫しており、そろそろ何とかする必要がある。消すのもなんだか良くない気がしたので、外付けSSDを買ってそちらに溜め込むことにした。Amazonで500GBのものを購入。安くて大容量のものが引っ掛かり不安になったため、商品名の先頭にメーカー名が入っていることなどを条件に探した。

https://amzn.asia/d/dxxKfuN

ラノベ「スクール=パラベラム」2巻を読了。とても面白かった。1巻のように依頼を受ける形でトラブルに関わる主人公も良いが、今回のように友人関係を伝って問答無用で巻き込まれていくほうが好みである。日常からシームレスに戦闘や陰謀に繋がっていく感じが楽しそうでワクワクした。また設定やキャラの掛け合いといった1巻から面白かったポイントもそのまま残っている。総じて非常に満足できる作品だった。3巻で完結する予定らしいのは残念。

午前8時過ぎに寝落ちした。

04/28(日)

午後3時過ぎ起床。今日はコンテストがない。途中寝落ちを挟みつつ、一日中ラノベを読んでいた。3冊読了。

「魔王の元側近は勇者に転生しても忠誠を捧ぐ」。パッケージングがいかにもお色気系のテンプレといった雰囲気で、正直それほど期待してはいなかったのだが、思いがけず面白く読めた。主人公が泰然としていて圧倒的。ヒロインたちの痴態にも変に振り回されず、堂々と対処しているのが良かった。

なぜ期待していないのに買って読んだのかというと、それは自分が「学園長」やそれに準じる立場に特別なものを感じているから。学園モノも好きだし組織の長も好きなので、組み合わせれば最高じゃないかと思っている。ただ、主人公が学園長というのは今知っている限りでは他に「王様のプロポーズ」くらいしかなく、どちらも突然就任している点が残念。もうちょっと権威付けが欲しい。いっそ学園創設から関わってくれていたらよいのに。

「許嫁が出来たと思ったら、その許嫁が学校で有名な『悪役令嬢』だったんだけど、どうすればいい?」4巻。面白かった。バスケの大会シーンは主人公が大活躍で良かった。その後のシーンでもヒロインと順調に仲を深めているようでニマニマしていたが、ラストでこれまで名前だけ出ていた本家筋のヒロインがついに登場して許嫁関係がピンチ。一体どうなる!?というあらすじの振りは次巻に持ち越された。しかし4巻発売に当たっても売り上げがかなり厳しかったようなので、5巻が出るか不安。頼むから出てほしい。

「ツンな女神さまと、誰にも言えない秘密の関係。」。これも面白かった。やはり半同棲ものは良い。主人公とヒロインが双方生徒会長ということで、それに絡めた何かがあるかなと思ったが、今のところ生徒会で顔を合わせるくらいしかこの設定は活用されていない。学校行事を一緒に成功に導く、みたいなストーリーを妄想したので今後に期待。

午前7時からは日記を書いていた。午後3時半くらいに眠気に耐えかね就寝。

週記(2024/04/15-2024/04/21)

04/15(月)

午後3時半前に起床。インターン先定例会に出た。

先週はセミナー準備に追われて進捗がなかった。セミナーが2回あったからなので、毎週こんなことになるわけではないはず……と言っておいたが、実際のところ今後どうなるのだろうか。まあどうなるというか、自分がどうするかの問題。

勉強会はコーディング時に使える便利ツールの紹介だった。VSCode拡張機能がメインだったので自分には関係ないなと思いながら聞いていたが、「GitLens」はかなり良さそうだった。GitHubGUIからBlameを使うよりよほど高機能らしい。

解散後はずっと先週の週記を書いていた。日付が変わる前に一旦投稿し、その後さらに1時間ほど追記してUniversal Cup以外は埋まった状態になった。

その後朝方までかけてラノベ「凶乱令嬢ニア・リストン」5巻を読了。面白かった。前の巻を読んでいても感じたことだが、学院でのシーンがもうほとんど存在しない。さらには普段の生活範囲でのイベントすら粗方描かれ切ったのか、長期休暇で遠出した先での話が多く、そのため休みのシーンだけつまみ食いしているような感覚を覚える。このようにどんどん時間を飛ばしてもらえると主人公を幼少期から描くにあたっての中だるみを感じずに読める。「幼年期」「少年期」「青年期」など章ごとに時間が大幅に飛ぶのはこれの極北だと思っていて、見かけると興奮する。

今季の履修を決めた。博士課程では20単位取る必要があるが、そのうち16単位は研究と博論で自動的に埋まる。つまり残りの4単位だけ考えればよい。専門と近い話題の集中講義を見つけたので、今季はそれだけにすることにした。

またしばらくラノベを読んで、午前9時就寝。

04/16(火)

午後3時起床。ラノベを読んでいたら午後5時を回っており、慌てて大学に向かった。今日は午後6時過ぎから競プロサークルの新歓に顔を出すつもりで、その前に夕食を摂っておきたい。学食に着いたのが5限が終わる直前だったようでギリギリ混雑に巻き込まれず、急いで腹に詰め込んだらなんとか間に合った。

新歓の内容は非常に良かったと思う。まず新サークル長のnononさんによる競プロ、弊サークル、AtCoderの説明があり、続いてブラウザ上で動くアルゴリズムゲームをプレイし解説を聞いた。この解説パートは競プロ経験者でも満足できるものだったし、未経験者も雰囲気を知る手がかりとして参考になったのではないか。未経験者の本当の気持ちはわからないが……。

プレイしたゲームは前サークル長のsotanishyさんが作ったもの。長さ8の列を比較回数20回以下でソートする問題は、マージソート想定のところ、自分は挿入ソートで挿入先を二分探索して解いた。実用上は挿入操作が重くて使えないが比較だけなら簡単。比較回数も、天井関数を無視すれば\sum_{i=1}^{N-1}\log_2(i+1)=\log_2 N!となり、N!通りの並び方を区別するための理論的下界と一致する。

終了後、サークルメンバーや入部希望者たちとしばらく喋って午後8時過ぎに解散。山に登って先週金曜日に置き去りにしてきた原付を回収し、帰宅してからはラノベを読んでいた。

「S級冒険者が歩む道」2巻を読了。非常に面白かった。このシリーズは導入こそ追放モノで、1巻で決定的な決裂が描かれていたが、そこからじわじわと関係が改善された上での2巻だったし、自分も1巻を読んだ時の記憶をある程度失っていたので、ギスギスした感じが一切なく読みやすかった。主人公が自分の実力に自覚的だったり、正体を特に隠していなかったりと真っ当に最強の座にあるのも嬉しい点。

今週末が期限となっている博士研究支援プロジェクトへの応募のため、申請書を書こうとした。しかしまず必要となる研究計画書と向き合った瞬間、学振のときの辛さがぶり返してきて、手が動かない。修論の英訳修正に逃げ出した。

午前8時半就寝。

04/17(水)

午後2時半起床。外出して、クリーニング屋で先週預けたスーツを回収し、大学生協でいくつか用事を済ませた。用事というのは新幹線の切符購入、メガネのメンテナンス、学食で食事、ラノベの受け取り。

大学生協でも切符が買えることを知らなかった。当然学割の適用も可能なので、みどりの窓口に行くより近いし人も少ないしよっぽど良い。ただし店員が少し不慣れなので要望があれば自分でリードする必要がある。祖母の一周忌に向けた今週末の帰省の切符を買ったのだが、北陸新幹線に関する確認で少し手間取った。

メガネはレンズの留具の調整。リムレスなので着脱の際つるを開いたり閉じたりする力がすべてブリッジにかかり、外れやすくなってしまった。レンズも少し傷ついたし度も合っていないしそろそろ買い換えようかな……と考えていたら、新年度のキャンペーンで1割引だと聞かされたので、その場で新調することに決めた。帰省から帰ってきたら受け取る。

帰宅後は研究計画書と向き合っていた。あまり進まないまま午後9時くらいまで耐えたが、どうしても今日ゲーセンに行きたかったので、気分転換という理由をつけて出かけることにした。歩きながら作文していたら椅子でうずくまっているより進みは良かった。

今日は閉店まで13クレプレイ。捨てゲー込みなのでプレイしていた時間に比べるとクレ数は多くなっている。新曲を埋めた。「INTERNET YAMERO」EXPが、MVのぴょんぴょんしたダンスをエアー付きタップで再現していて非常に楽しかった。MASはノーツ数が多くて満足感があるが、かなり難しかった。

油そばを食べ、ドンキに寄って、日付が変わったくらいに帰宅。シャワーを浴びた後改めて申請書執筆に取り組んだ。

午前6時までかけてなんとか研究計画書と自己分析をでっち上げた。読み返すのは辛いためChatGPTに添削を頼んだが、かなり便利。ただし聞き方を間違えると要約されてしまう。必死に水増しした部分が一瞬で判別されてしまうと目の前が真っ暗になるため、注意が必要。自己分析については去年の学振で書いたものを一部流用した。振り返ってみると、研究らしいことを一つもしていなかった当時によくぞ1ページも埋められたものだと感動してしまう。

書類を先生に送り、1時間ほどラノベを読んで就寝。

04/18(木)

午前10時半起床。30分かけて布団から這い出し、原付で登校した。着いたときは空いていた学食だが、図書館で教科書を借りる一瞬の間に長蛇の列が形成されていて唖然。まだ2限が終わる時間ではなかったはずなのに……。仕方ないので購買でパンを買って食べた。

論文を読んで過ごし、午後1時からセミナー開始。今日は後輩の発表だった。用意してきた分量で足りるか心配していたので、どうせ途中で具体例を計算するよう言われるから足りるよとアドバイスを送ったが、今日はその計算が大変で時間を大幅にオーバーし3時間かかった。先生による発表はなし。

その後先生と一対一で修論の英訳修正に取り組んだ。途中学食に行きつつ6時間コースでかなり完成に近づいた。その場で確認しながら直していくと手っ取り早くて良い。英語での言い回しが全然身についていないことを実感した。そこを先生にカバーしてもらいながら書いたので、もう自分が最初に書いた文章は残っていないレベル。

その後研究計画書についてしばらく話し、日付が変わる直前に帰宅。

Yandex Cupの賞金振り込みが遅いなと思っていたら、ゆうちょ銀行への送金に失敗していたらしい。とりあえず、以前ダメと言われたPayPalが使えないか改めて聞いてみることにした。

銀行口座よりPayPalに送金してもらったほうがお互い簡単かと思ったものの、そういう選択肢はないらしい。

週記(2023/12/11-2023/12/17) - kotatsugameの日記

少し日記を書いたあと申請書と向き合った。研究計画書を少し書き直してエッセイを2本生成。既存の研究領域を超えた発展のビジョンについて書かされ、完全無欠のポエムになった。ChatGPTに評価してもらったら明確なビジョン・論理的な展開・詳細が不足していると言われ横転。ポエムであることを見抜かれている。

ホスフィンにも見せたらコメントが返ってきた。彼も忙しいのにありがたい話。やはりエッセイがポエムすぎるとのことで、説得力を増すアドバイスをいくつかもらい、それに従って可能な限り修正した……つもり。サーベイが足りないのはどうしようもなかった。

先生に送って午前10時就寝。

04/19(金)

午後2時半起床。今日帰省する。新幹線の時間まではまだかなり余裕があるが、その前にゲーセンに行っておきたいため無理して起きた。

準備して出発。駅近くの丸亀製麺で食事して、ゲーセンで9クレ遊んだ。眠くて集中力がないしドライアイがひどくて目を開けていられず、成果はない。ただし今日はチュウニズムクエストを進めることが目的だったため、プレイさえできればそれで良かった。

アンパンマン像を撮り、午後6時半の列車に乗車。車内ではラノベを読んだりスマホを触ったりして眠気に耐えていた。

長野駅で各駅停車の新幹線に乗り換え、ふと隣を見たら姉がいてびっくり。駅まで迎えに来る親の手間を減らすため列車は合わせたが、まさか指定席で同じ車両・同じ列になるとは思わなかった。

午後10時過ぎに帰宅し、申請書の提出作業を行った。その後食事と入浴を済ませ、少しだけラノベを読んで午前0時半就寝。

04/20(土)

正午起床。

昼食を摂ったあとは、実家に置いてある「お隣の天使様にいつの間にか駄目人間にされてしまった件」の4巻ラストと5巻冒頭を読み返していた。体育祭のシーンとその後でストーリーが大盛り上がりする箇所だが、主人公とヒロインのやり取りも面白いということを再確認した。最近の巻はそこが少し苦手、ということはつまり食傷気味なのではなく高すぎる糖度に拒否反応を起こしているらしい。

礼服に着替えて祖母の一周忌へ。祖母宅はこの1年でかなり片付けが進んでいた。古新聞が必要になったので引っ張り出してきたら、祖母が特別に保管していたものだった。自分の名前が載ったときのものもちゃんと残されていてしんみりとした気持ちになった。

一周忌を終えて実家に引き上げたら、そのままの格好で会食へ向かった。と言っても出席者は我が家のみ。料理は写真にまとめてある。感想としては、品数が多すぎるの一言。自分以外に完食できた人はいなかった。特にローストビーフは冷たすぎて味もよくわからないし、余計だったかなと思う。

帰宅してシャワーを浴び、午後9時からABC350に出た。

AtCoder Beginner Contest 350 - AtCoder

Aは……カス。ただでさえ面倒だしABC000というコーナーケースもある。特に制約の書き方も気づきにくさに拍車をかけていると思う。まあ他の簡潔な書き方は存在しないわけだが。Bはストーリーを読むと意味不明になるので歯医者とか治療とかはとっとと忘れるのがコツ。

Cは逆順列を管理するのが面倒なので、iの昇順にi\ne A_iの間A_iA_{A_i}を交換することを繰り返した。出力の制約i\lt jには気づいていなかったが、このアルゴリズムだと自動的に満たされる。ラッキー。Dは連結成分ごとに頂点数と辺の数を数えて算数。Eはメモ化再帰すると\left\lfloor\frac{N}{2^a3^b5^c}\right\rfloorしか出てこないやつ。

Fは括弧列を一旦パースすることで括弧の中身を右からも舐められるようにし、もう一回進む方向を持ちながら見る。Gは適当に根を固定したときの親が分かれば質問クエリに答えるのは簡単で、辺を追加する際小さい方の連結成分の親を愚直に再計算してもマージテクの逆で高速。

ノーペナ全完、3位。NibblesでAとBを縮めた。Aは1\dots 349から316Nを取り除いた残りの個数の偶奇をチェック。Bは1\dots NからリストのXORを使って更新していった。O(NQ)が通る制約で助かる。

しばらく日記を書いた後、午前2時くらいからは布団でラノベを読んでいた。「無能と言われ続けた魔導師、実は世界最強なのに幽閉されていたので自覚なし」4巻を読了。

あらすじに「アルスの実力はついに多くの民が知るところとなる」とあったからワクワクしながら読んでいたものの、思ったより多くなかった……。そのくせ主人公が持つ能力を知って求め暗躍するキャラばかり増えていくのだから大変。また主人公によるマッサージという謎の行動が頻繁に登場してかなりノイズになっている。お色気シーンのつもりなのだろうと思っていたが、それにしては中途半端だし、もしかして重要な伏線だったりするのか?

もう一冊手を出し、午前6時になってようやく寝た。

04/21(日)

午後3時起床。夕方までラノベを読んでいた。

夜は外食。帰りに本屋に寄ってもらい新刊を眺めていたら、宮内悠介さんの新しい短編集を見つけた。ラノベ専門サイトで新刊チェックをしていると、こうやって一般書を見落としてしまう。反射的に買ったが、単行本サイズなので帰省中に読み切ってしまいたい。

帰宅して入浴を済ませ、午後9時からARC176。

AtCoder Regular Contest 176 - AtCoder

Aにかなり時間をかけてしまった。i行目は(i,i),(i,i+1),\dots,(i,i+M-1)に1を書き込めばよいな、という観察から一般化する方向性を間違えたらしい。長さNの順列P,Qを用意して、(i,j)\mapsto(P_i,Q_j)と見なすことを考えてしまった。一応これでも解ける。P_1\dots P_MQ_1\dots Q_Mを適切に選べば必ず構成できる。k=0\dots Mについて、Aのうち出現頻度上位kを取り除くと高々M-k個しか残らないため、それに対応するBを貪欲に詰めてもはみ出ない。

Bは簡単。まず2^M\equiv 2^Kを使ってN\lt Mのケースに帰着する。この時点で2^N\lt 2^M-2^Kならよい。そうでない場合M-1=Kなので、最初から\bmod{2^K}で考えればOK。

Cもすんなり解けた。重みCの辺(A,B)があると思って条件を考えると、2本の辺が頂点を共有した瞬間1点確実に決まる。よって連結成分ごとに値がほとんど決定するようだ。さらに、残りは独立に考えられる。辺が残るとP_A=CP_B=Cのどちらかを選ぶ必要があるが、これはどちらを選んでも対称なので決め打って2を掛ければよい。あとは上限だけ気にする数え上げで、上限の小さい頂点から埋めていけば求まる。

Dはいい感じの考察ステップを踏めたと思う。まず求める値をP_1\rightarrow P_2\rightarrow\dots\rightarrow P_Nと移動したときの距離の総和と見なし、点ii+1の間を何回通るか数え上げる方針を考えた。これはP\le iP\gt iが切り替わるタイミングを数えればよい。しかし法則性がわからなかった。

考察を簡単にするためP_0=P_{N+1}=0を加えてみたのだが、そのキャンセル方法を考えているときに、端の値の数え上げならそこそこ簡単にできることに気づいた。これを2箇所同時に行うと(P_j,P_{j+1})自体が直接求まる。ただし遷移がシンプルでも状態数がO(N^2)あるためまだ厳しい。ここで先ほどの2値化を適用すると4状態になり、さらに線型性からj=1\dots N-1で同時に計算できる。

Eは2^N方針を考えていた。A_{\ast,j}の最大値となる更新をXYのどちらに適用するか決め打つ。そのとき、例えばXに適用するなら、A_{\ast,j}を降順に並べたときどこまで同じくXに適用するかを調整する問題だと思ってみる。するとその次の値がYに適用される最大値になるから、最終的なX_j+Y_jがわかる。

さらに矛盾する調整も「列iのここと列jのここを選ぶとコスト\infty」と書けるから、燃やす埋めるで解けそう。実現のためにはYのほうだけ真偽値を反転する必要があったものの、ともかく実際に書けた。頂点数O(NM)、辺の数O(N^2 M)、流量は500Nくらいになるだろうか。提出すると当然のようにTLEしたが、時間がなかったため最初に決め打つ2^N通りをシャッフルし枝刈りを加えて投げたら、1846msで通った。

5完13位。Eはそのまま燃やす埋めるになるらしい。してやられた。

午後11時半からはCF #940 div.2に出た。

Dashboard - Codeforces Round 940 (Div. 2) and CodeCraft-23 - Codeforces

Aは3本で1個作る。Bはn=1のとき自明、n\ge 2のときはx,k-x,0,\dotsとし、xk、またはkからあるbitを下ろしそれ未満のbitを立てた数とする。Cはr=cとする回数を全探索。r\ne cについてはペアの作り方が2重階乗、白黒の置き方が2べきで求まる。Dはyを決め打つ。yのMSBがa_x\oplus\dots\oplus a_zで立っていなければよいが、累積XORに関する条件に書き換え、左右から累積カウントを求めれば計算できる。

EはまずC(i,j)=\binom{i}{j}\times(j-1)!=\frac{i\times(i-1)\times\dots\times(i-j+1)}{j}。この値をjで割ったあまりは、j素数でなければ(j-1)!のせいで0になりそう。素数ならウィルソンの定理から(i-j,i]に存在する唯一のjの倍数をcjとして-c\bmod jになるので、iを固定したときの和をimos法で求め、その累積和を取ればよい。しかしサンプルが合わない。よく考えたらj=4のときあまりが0にならないiがあった。それも追加したら通った。

Fはよくわからない。まず値に乱数を割り当て、総和\bmod{(10^9+993)}をmultiset hashとする。またオイラーツアーしたりLCAを求めたりして、パスのmultiset hashがBITによりO(\log n)で求まるようにしておく。これが下準備。あとは値を半分に分け、片方だけBITに乗せてmultiset hashを比較することで、食い違う値の候補をどんどん絞っていった。計算量は知らない。F1は1500ms弱で通った。

k個見つかるまでもう半分も調べることにすればF2に拡張できる。しかし全然間に合わない。値の順番をシャッフルしたり、BITへの値の余計な積み下ろしを少し減らしたりして、pretestはなんとか4483msで許されたが、システスで落ちた。それもpretestに入っていたケースで落ちた。どうせHackされる暇なんてないんだからseedを固定しておくべきだったか。

6完7位。Fで2次元データ構造を使うと、値の積み下ろしなく特定の値だけ考慮するmultiset hashが計算できる。さらに、実は総和をそのままhashとして使っても良かった。色々高速化の余地はあったようだ。

ラノベ「家事代行のアルバイトを始めたら学園一の美少女の家族に気に入られちゃいました。」を読了。面白かった。主人公のスペックの高さから来る安心感がある。家事代行をバッチリこなすのは当然のことながら、家族からヒロインとの仲をからかわれてもそつなく返してかなりスマート。そのからかいも過剰なものではなかったりと、登場するキャラがみんな良い人柄で、読んでいて心地よかった。

日記を書いて午前5時半就寝。結局今週もインターンの稼働ができなかった。明日定例会の前になにかしたい。

週記(2024/04/08-2024/04/14)

04/08(月)

午前7時くらいに目を覚ましてハーメルンを読んでいた。

「勝ち逃げツインターボ」を読了。面白かった。ウマ娘二次創作で人間のスポーツに触れるものはほとんどないから目新しい。また担当ウマ娘が大逃げというのも新鮮だった。いないわけではないものの、その場合も大抵は圧倒的な強さで相手をすり潰すあっさりしたレース描写になりがちで、この作品のようにドキドキする展開にはならない。強いのは好きだが手に汗握るレースも好き。

syosetu.org

布団を出て先週の週記を書き、午後2時を回ったあたりでシャワーを浴びて大学に向かった。コロナ禍以来学食は昼の部と夜の部に分かれていたが、今年度からついに間の時間の営業も復活。授業開始日の混雑を警戒しこの時間を狙った。席は問題なく確保できたものの思ったより人がいて残念。しばらくすればこの時間帯はもうちょっと空いてくれるだろう。そうして弛緩した雰囲気の中で食事するのが好き。

購買でパンやラノベを買って帰宅。昨年度末、ミールの適用範囲が元に戻るだろうと言っていたが、実は臨時措置から通常ルールに格上げされるだけだったようだ。ミールのパンフレットにも明記されていたのにすっかり見落として騒いでいた。まあ特別な告知もなしに今までできていたことができなくなるなんてことは考えにくいか。

理由というのは、ミールの適用範囲拡大措置についてのもの。コロナ禍が始まってから何度かの期間延長を経て続いてきたこの措置だが、今のところ今日までということになっている。これまでの延長は数か月前の時点で告知されていたから、春休み突入に合わせて終わるのだと思う。いつもこの制度を利用してお菓子だったりパンだったりを買っていたので、残念。

週記(2024/02/19-2024/02/25) - kotatsugameの日記

帰宅して午後3時半からインターン先定例会。先週もミーティングをした。今週は特にそういう予定はなく、またタスクについてもいったん確認待ちだったり相手方のアクション待ちだったりする。

勉強会はAHC031の話。短冊状に切るのが正解というのはTLでも見ていたが、それでちゃんと面積が足りない場合のペナルティを小さくできるのはやはり驚き。また領域の切り分けが決まっていると割り当ては貪欲が最適になるというのは、アルゴの問題っぽくて面白かった。

解散後はずっと週記を書いていた。午後11時を回ったころに投稿し、半からのCF #938 div.3に備えた。

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

Aは難読。自分が読んだときは「ちょうど」n個というのが太字ではなかったため、そこを探すのにしばらく時間を使わされた。Bはa_{1,1}=\min bから構成してチェック。Cは前から\lceil k/2\rceil回、後ろから\lfloor k/2\rfloor回攻撃する。k\ge\sum aのケースだけ別で処理すれば前後で独立に考えられる。Dは幅m区間をずらしながら頻度配列の差を管理。

Eはkを固定するごとにimos法の更新と累積和の計算を同時に行ってO(n)で判定できる。なんだか見覚えがあって、01が隣り合っている箇所から端までの距離が重要だったはずだが、この問題とは合わないのでおそらく設定が少し違うのだろう。Fは4だけ別で処理し、1,2,3についてはあらかじめdpしておく。

Gはa_{1,1}の約数それぞれについてO(nm)で判定。約数列挙は\sqrt{a_{1,1}}まで見る愚直で十分だったが、間に合わないと勘違いし、エラトステネスの篩で素因数を一つメモしておく方法の素因数分解を持ち出した。Hは少し丁寧に評価するとr\le 11が言えるので、各塔と各rについて減らせるHPを計算し、bitDPした。手数が多くて面倒。

全完6位。

www.youtube.com

動画を投稿して午前2時半就寝。

04/09(火)

午前9時前に起きたが、ハーメルンを読んだりゴミを出したりダラダラYouTubeを見たりしていたらすぐ午後2時を回ってしまった。シャワーを浴びて外出。郵便局で用事を済ませた後、生協で散髪し、食事して帰ってきた。

再度シャワー。床屋帰りには切った髪を洗い流すため必ず浴びるようにしている。床屋でも洗髪してもらっているのだが、首元から服の中に入り込んだ毛はこうするしかない。今日は昨日浴びずに寝てしまった分を出る前にもこなしていたし、なかなか非効率的な段取りだった。

今週のセミナーで発表する内容を決めるため、論文を読み始めた。正直に言って何もわからない。日付が変わる前くらいに眠気がやってきたので逆らわず寝た。

04/10(水)

午前9時起床。論文を読んでいたがやっぱり何もわからず、途中2時間ちょっと二度寝していた。

午後3時外出。本当はゲーセンに行くつもりだったがセミナー準備が全然終わっていないため、用事だけこなしてすぐ帰ることにした。

まず入学式で着たスーツ一式をクリーニング屋に持って行き、ついでに近くの花見会場の桜が満開になっていたので先週と同じ構図で撮ってみた。毎年この時期は写真を撮っているのだが、きれいな構図を見つけられた試しがない。

あとは学食で食事し、ラノベを買って帰宅。セミナー準備をする。今週は木曜日のセミナーに加え金曜日にも他大学の先生を招いて話を聞くことになっており、そこで参考となる論文が送られてきたので、木曜日のセミナーではこれを扱うことに決めた。午前4時まで準備を進め、さらに1時間ほど修論の英訳修正を進めて今日は終わり。

その後、準備の合間に読み進めていたラノベ「迷宮狂走曲」2巻を読み切った。主人公の勘違いの理由が毎回丁寧に説明され、都合が良すぎることもあるものの分かりやすくて良い。装備を性能だけで選んでいるから統一感がなく気持ち悪いという設定は、別にそんな重要でもないかなと思うが、挿絵で忠実に表現されておりインパクト抜群だった。

午前6時半就寝。

04/11(木)

午前11時に起床し、1時間ほど布団でグダグダしていた。明日のセミナー後の夕食会で使う店を予約し、登校して学食で昼食を摂った。

午後1時から2時間は自分の発表。昨日準備したのは結局preliminariesの範囲だけで細かい証明は正直どうでもよかったので、もっと前に準備した分からまだ話していないところを扱った。次の2時間は先生が最近の研究内容について発表。予定されている学会発表に向け、この先数回は先生も話すらしい。

解散して後輩とともに学食に行き、しばらく話した。セミナーの途中で競プロの話が出たのだが、彼もQuizKnock・鶴崎さんがされているところから興味を持っていたらしい。APG4bを紹介しておいた。夕食の後も東北大学の学生向けサイトの案内等でしばらく立ち話をしていた。

帰宅後は気力が尽きたのでラノベを読んでいた。「凡人転生の努力無双」を読了。昔カクヨムでも読んでいたがやはり面白い。

大人の精神を持って転生したため幼少期から努力を積み重ねることができ、結果伝説的な力を手にするという、言ってしまえばテンプレ通りの流れ。ただし設定や描写がちょうど良いため面白いのではないかと考えた。努力を全部描写するわけではなく、ただし一気に飛ばしすぎるわけでもない。身に着けた技術も設定上あまり多くはならないが、無双するには十分であった。

修論の英訳修正を進めて午前3時就寝。

04/12(金)

午前9時起床。ちょっとハーメルンを読んでいたら、地下鉄ではなく原付で登校しないと間に合わない時間になってしまった。夕食会に行く際どうしようか迷いつつ、急いで出発した。

午前10時から2時間弱は招いた先生によるセミナー。最初は知らない用語しか出てこなくて絶望しかけたが、雰囲気で解釈したら正解を引き当てたらしく、内容には結構ついていくことができたと思う。今日は紹介していただいた論文の背景について話したとのこと。そういうのは分野に詳しくないと見えないくせ、論文を深く理解するには必須となってくるから、話を聞けたのは非常にありがたいことだった。

昼休みに入り混み合う直前の学食で昼食を摂り、近くの広場を散歩してからいったん解散。修論の英訳についてしばらく先生と話していた。

午後1時半から再開し、今度は自分の発表。修論の内容の説明だったが、前提知識から主定理までじっくりねっとり説明したら休憩を挟んで午後4時くらいまでかかった。発表順序もあまり考えていなかったせいで、ちょっと行き当たりばったりだったり手戻りが発生したりして反省。ただ最終的には必要なすべてのことを伝えきれたようで良かった。

その後の時間は修論の応用に関する議論に充てられた。自分が以前考えていた方針について取り上げたせいか、午前中学んだ話はほとんど出てこずちょっと失敗したなと思う。今日しか話せないことが他にあったのではないか。それはそれとして話は盛り上がりいつまでも続きそうな具合だったが、店を予約した時刻である午後6時が近づいてきたため切り上げた。少し遅れると店に連絡を入れ、地下鉄で移動。

店はいつもの武屋食堂。定食を頼むのではなく、一品ものをいくつか頼んでシェアする形式で注文した。また全員お酒を飲むようだったので自分も飲むことにした。さらば原付。飲み食いしたものは以下のツイートとそのツリーにまとめてある。

帰宅して午後9時20分からyukicoder 427に出た。

yukicoder contest 427 (ゲーム問題コンテスト) - yukicoder

Aは戦略も何もない。約数の個数の偶奇つまりNが平方数かどうか。Bは一つ目の敗北条件が気になって初手でi=1を選んだケースを考えたら、後手の戦略を盗むことで先手必勝であることに気づいた。ただしN=1のケースだけ後手勝ち。ところで一つ目の敗北条件に引っかかるのはN=1のケースのみだから別にいらなかったのではないかと思う。ただしその場合は常に先手必勝になるから、それを嫌ったのかもしれない。

Cはなかなか考えがまとまらなかった。-でない文字による連結成分が一つの場合を考え、おそらく各連結成分の両端の文字がどうなっているかが重要だとエスパー。それっぽく書いたら通った。Dは「互いに素でない」という関係で2\dots Nに辺を張ったときのNを含む連結成分のサイズが重要。N2より大きな素数でなければ2と連結で、そこからN/2より大きな素数以外すべてと繋げられる。

solved数を見てFへ。木の深さが1ならNimだから一般のケースも似たような感じだろうと思って考え、深さ偶数が無視できることに思い至って、それ以外の頂点によるNimという解法にたどり着いた。この考察には見覚えがある。そもそも問題自体既出だった気もする。

Eに戻った。Nの約数でない最小の数mを初手で選ぶことができれば先手勝ち。そうでない場合はmが持っていてNが持っていない素因数を見て云々……と判定していたが、そんなものはないため後手必勝。余計な場合分けをいろいろ入れていただけなので問題なく通った。

Gはまず四面体の体積を行列式に言い換える。操作はある行のA倍をどこかの行に追加するものだから行列式は変わらないと思ってしまったが、冷静になるとj=kのとき行列式A+1倍する操作になる。行列式の絶対値を\bmod{(6\times 101)}で持ってメモ化再帰した。手番が交互ではなかったり、A+1倍をA倍としていたり、行列式0の場合引き分けであることに気づかなかったりしてかなり手間取った。

全完7位。午後11時半からはECR164に出た。

Dashboard - Educational Codeforces Round 164 (Rated for Div. 2) - Codeforces

AはBobが連続する区間を選ばなければならないと勘違いしてタイムロス。さらに判定もミスってWAを出してしまった。Bはa_1に等しい要素の連続区間を一つ削除すればよい。Cは3桁の手計算によれば最上位桁と残りの桁で大小関係が逆になっているのが最適っぽい。同じ数字の桁を無視して考えることに注意。

Dはaから取り出した列bに対し\max(\sum b/2,\max b)valueとなる。\sum b\lt 10^4までは値に対して場合の数を持つdp、それ以降は\sum bの偶奇に対して場合の数と総和を持つdpを書いた。

Eはa_i\leftarrow\lceil a_i/k\rceilとするとk=1のケースに帰着できる。これは有名問題で、a_0とした上での\sum\max(a_i-a_{i-1},0)が答え。ところでこれをk一般に戻すと、区間[a_{i-1},a_i)に存在するkの倍数の個数となる。つまり、あらかじめこの区間をimos法で集計しておき、kの倍数それぞれに対して覆う区間の数を数えればよい。調和級数で愚直が十分高速。

Fはわからなかった。極大な1の連結成分とそのサイズ、個数をもとに重複を頑張って取り除くdpを考え、コンテスト終了後しばらく粘って一応サンプルを合わせることには成功したものの、実行時間が長すぎてお話にならなかった。5完52位。

www.youtube.com

なろうを読んで午前6時くらいに寝た。

04/13(土)

午後1時起床。少しなろうを読んで午後2時からUniversal Cupに参加した。28回目、Chengduセット。これがシーズン2の最終回となる。

https://qoj.ac/contest/1596

書く

食事して午後9時からABC349。

AtCoder Beginner Contest 349 - AtCoder

Aは問題名から解法がわかる。ただ零和ゲームを知らなければ難しいのではないかと感じた。Bは問題名の意図が分からないが言われたことを実装。Cもまあそのまま。Dはセグ木の区間の話をしていると分かればおしまい。ただしACLのような非再帰セグ木はノード番号のみで扱っているため、区間の復元を求められる今回はあまり使えなそう。再帰による実装が楽。

Eはちょっと気合いを入れて実装。FはMの素因数が高々13種類しかないので、素因数分解してどの素因数を必要なだけ持っているか考えればよい。状態数213のbitDPで、遷移もN個それぞれ行うのではなく213パターンに分類してから行うことで十分高速になる。M=1のとき空集合を数えてしまい1WA。

Gは文字の一致・不一致の条件をUFで表現する。Manacharを書き換えて実装すると張るべき辺の本数がO(N)になるため、あとは先頭から復元すればよい。AがManacharで得られる回文半径から1引いた値であることに気づいておらず少し手間取った。

全完9位。コードゴルフはAをNibbles、BをRaku、CをPerlで書いておいた。Aは2行目の総和を求め-1を掛けた。Auto Valuesを用いて2Bで、これが最短の符号反転。ただし今回はNから入力された数の総和を引くほうが短くなるらしい。2行目を抜き出す部分で1B差がついた。

www.youtube.com

午後11時半からはCF #939 div.2に出た。

Dashboard - Codeforces Round 939 (Div. 2) - Codeforces

Aはn=100でシミュレートした結果を見て答えた。こういう問題は難しかったはず、と思ってあんまり考えなかったが、難しいのは出ていく人の順番が関係する場合であって、実は最後に残る人だけなら1\dots a_1-1のみだとすぐわかる。

Bは各プレイヤー、自分が2枚持っているカードを優先的に出していく。その枚数を比較して互いに1枚ずつ持つカードがどちらの得点になるかも考えたが、そんなのは当然一致するに決まっていた。余計な場合分けでタイムロス。

Cはp=(1,\dots,n)としてn行目、n列目、n-1行目、n-1列目、……と操作していくとa_{i,j}=\max(i,j)が構築できる。最適っぽさがプンプンするので深く考えずにすぐ出した。その後考えてみたものの証明はよくわからなかった。

Dは長さL区間の値を全部Lにすることができる。操作を1点更新だと思い込んでいたが区間更新でも帰納的に示せて、この証明から構築も得られる。あとはどの区間を残すか全探索。操作回数は見積もっておらず、最後にL=18で確認して提出した。

Eは難しい。適当に見積もると、O(\sqrt{\max a})回くらい操作した時点で三つ連続して生き残ることはなくなるらしい。例えば0,x,y,zという連続部分列があると、tターン後にyが死んでいないならz\sum_{i=1}^t(y-ix)だけダメージを受けている。先頭が0でない場合は……知らないがそう大きくなることはないだろう。

とりあえずこれでE1は解ける。700回操作しておいた。E2については、zが2乗オーダーで減っていくのだからその次の値は3乗オーダーで減るだろうということで、O(\sqrt[3]{\max a})回操作することにした。これで最大連続三つとなり、zの生き死にについては上の式で判定できる。2000回操作してもassertで落ちたので見積もりをやり直したり四つ連続して生き残る間追加でループを回したりしたが、単純に実装ミスだった。

Fは領域に対して辺を張りたくなったので2次元セグ木を用いた区間辺を頑張って書いてみた。コンテスト後追加で1時間格闘し何とかサンプルは合わせたものの、当然のようにTLE。

E2までの6完で、他の人のE2が落ちまくったため11位。ただし間もなく自分のE2もuphackされた。2000回操作した後0を探してそこを起点に見ていったが、探す際にも操作を行わないとちょっとずれてしまう。E1は連続二つしか生き残らないため、そこをミスっていてもうまくいくようだ。

www.youtube.com

なろうを読みふけり、午前10時くらいに寝落ち。

04/14(日)

午後2時過ぎに起きてなろうを読んでいた。ここ数日は「最強魔法師の隠遁計画」を読み返していた。見せ場となるシーンを覚えている限りで拾い読みしたが、どれも書籍版の描写に比べるとあっさりしている印象。やはり続刊が待ち遠しい……と思ってHJ文庫の新刊情報を見に行ったら、ちょうど5月に18巻が出るらしい。なんともタイミングの良い話だった。

https://ncode.syosetu.com/n5606cq/

firecross.jp

午後7時からは日記を書き始め、同時並行でラノベも開いた。「凶乱令嬢ニア・リストン」4巻を読了。3巻巻末の予告通り対魔獣・対人ともに大暴れ。侍女を隠れ蓑にしての行動だったため、主人公その人が注目を浴びるような描写は存在しなかったが、それでも無双による満足感はあった。魔獣狩りの描写がかなりスキップされていたのも、むしろ作業感が強くなくて良い。

午前6時半就寝。

週記(2024/04/01-2024/04/07)

04/01(月)

午後3時起床。半から定例会に参加した。

先週はミーティングをした。今週もミーティングをする予定。新年度なので、自分がどういうタスクに携わっているかも改めて軽く説明した。

勉強会はGrundy数の話。Sprague–Grundyの定理とその証明を改めて聞いて、自分がステートメントを勘違いしていたことに気づいた。通常のNimと同様に進め、相手がGrundy数を大きくしてきたら小さくする、という戦略を考えれば必敗盤面とXOR=0が対応することはすぐ納得できるが、定理の主張である「XORが全体のGrundy数になる」ことはより強い命題であった。

解散後は先週の週記を書いていたが、午後9時20分からのyukicoderエイプリルフールコンにうっかり参加してしまった。

yukicoder April Fool Contest 2024 - yukicoder

まずAを開いた。問題文が見えないが、お誕生日コン典型ということでページのソースに行ったら怪しげな文字列を発見。冒頭のdata:audio/mpeg;base64をググって、base64エンコードされた音声ファイルをでコードするWebページに辿り着き、無事問題文を「聴く」ことができた。なるほど問題名のListeningに納得。

Base64 to Audio | Base64 Decode | Base64 Converter | Base64

ところが、グラフの最大マッチングを求めよと言われてしまった。今の制約では無理そう。Library Checkerから高速な提出を窃盗してきたものの無事TLEしたため、いったん諦めてB問題に移った。

Bは最初のほうの問題なら解ける。A=3,B=23,C=180,D=-360,E=0,F=360,G=1,H=19,I=4。また「Wkh Fdhvdu flskhu」くらいまででググってみたらシーザー暗号がヒットしたため、復元してK=6も分かった。現在、式は次のようになっている。

\displaystyle f(n)=\frac{1}{\sqrt 5}\left(\left(\frac{6+\sqrt{\left\lfloor\frac{3\times(6J)^J}{J+19}\right\rfloor}}{L}\right)^{\frac{Jn}{4}}-\left(\frac{-\log_6(4\times(JL+1))}{1+\left(\frac{6^J}{180}\right)^{\sin\left(\frac{L+7}{6}\pi\right)}}\right)^n\right)

残り2問は解けなかったためエスパーで。まず、\sin( (L+7)\pi/6)の値がまともに扱える値になるのはL=2のときの-1L=4のときの-1/2のみである。次に\left\lfloor 3\times(4J)^J/(J+19)\right\rfloorJ=1,2,3,4でそれぞれ0,2^2\times 5,3\times 5\times 53,3\times 5^2\times 577。最後に\log_6(4\times(JL+1))を見ると、整数になるならJL+1=9より(J,L)=(2,4),(4,2)だろうと思える。

まあ6は\bmod 998244353における原始根なので、6^{\log_6 x}\equiv xという意味での\logは常に定義できないこともない。ただそれを用いたところで整合性のある計算結果になるかは知らないし、何よりその解釈を用いるとしても絶対に解決しなければならない問題が残っていることに気づいた。すでに決定した部分に現れる\sqrt 5は、\bmod 998244353において定義されない。

ということで、これをキャンセルするような形で同じく\sqrt 5がそこかしこに現れるだろうと考えた結果、(J,L)=(2,4)がちょうど良さそうに見えた。この時式は次のようになる。少し前の時点でさすがにフィボナッチ数列の一般項だろうなとは想像がついていたが、実際ここから有理化などを行うとピッタリ一致する。これでようやくACが取れた。

\displaystyle f(n)=\frac{1}{\sqrt 5}\left(\left(\frac{3+\sqrt 5}{2}\right)^{\frac{n}{2}}-\left(\frac{-2}{1+\sqrt 5}\right)^n\right)

次にsolved数を見てEへ。これは検索サイトがあることを知っていたので、ググって出てきたところで探した。

Aに戻って悩んでいたら急に閃いた。最大マッチングつまりmaximum matchingを求めろと聴こえたが、あれは実はmaximal matchingだったのではないか。この発想が降ってきた瞬間、あまりの「それらしさ」に正解を確信。貪欲を提出したら無事通った。かなり好きだったのでFavしておいた。

最後にC。3N回を超えて質問した場合のジャッジ結果が不定だから実は許してくれるんじゃないかと思ったが、普通にQLEが出てきてしまった。絶対にギャグだろうと思っていたので今度は初手で(1\dots N,1\dots N)を答えてみたところ、正解だった。

ABCEの4完で4位。Cは当てずっぽうでACを取ってしまったが、題意はインタラクティブの問題文に関する良い指摘だったと思う。まあアダプティブにおける「これまでの質問から回答が一意に定まらない場合WAとする」という注意書きは、それが判定できるという意味で解法のヒントになる可能性もあるから、なかなか難しい出題方式。

コンテストは午後11時くらいに離脱し、週記を書く作業に戻った。日付が変わる直前に投稿。読書記録ツイートもしておいた。3月頭まで没頭していたなろうは現在手が止まっているが、代わりにその期間チェックしていなかったハーメルンカクヨムの作品を読み漁ってしまっており、ネット小説を優先してしまっている現状は変わっていない。

椅子でしばらく寝落ちしてしまったので布団に移動し就寝。午前2時だった。

04/02(火)

午前4時半くらいに目を覚まし7時間ほどハーメルンを読んでいたらしい。二度寝して、午後3時に目覚ましで起床。明日の入学式のためクリーニング屋に預けたワイシャツを回収してくる必要がある。午後5時閉店なのでこの時間に目覚ましをかけていた。

シャワーを浴びて外出し、無事受け取りに成功。そのまま何もせず帰ってきた。帰り道に花見会場があったので出店で食事でもしようかと思ったが、先週母親が作ってきてくれた総菜がまだ残っているため止めておいた。桜はまだつぼみだった。

帰宅してから午前1時までずっとハーメルンを読んでいたが、重い腰を上げて修論の英訳を始めた。しかし午前4時にはもう眠くなってしまったため就寝。

04/03(水)

午前9時起床。シャワーを浴び、スーツを着て入学式に向かった。

着席完了時刻を過ぎてから到着したら保護者席に通された。式は特に何事もなく終了。退場後、その場で自撮りしてツイートした。

偶然会った同期の友人と近くにあったIKEAを練り歩いた。売り場で山積みになったサメの抱き枕を発見し、買うかどうかかなり迷った。昼食は中のレストラン。見ていたのが会員価格だったらしく、思ったより高くついてびっくりした。

ABC345優勝賞品のアマギフ10万円が届き、ついに残高100万円を突破した。一度超えてみたかった壁だったので達成感がある。有効期限は短いものでもあと8年以上あるので、消費について考えるのはまだ後回しにできるなと思っている。

寝るまでずっと修論の英訳作業をしていた。午前2時就寝。

04/04(木)

午前7時半起床。修論の英訳を続け、正午くらいに一段落させて先生に送り付けた。ページ数稼ぎの内容を全部削除したらかなり短くなった。

シャワーを浴びて原付で登校。微妙に暑かったので、普段Tシャツの上からパーカー、さらにウィンドブレーカーを着ていたところ、パーカーを外してみたのだが、教室での体温調節ができなくて大変だった。パーカーは着ないとしても持っておいたほうがよさそう。行き帰りについてはこれで特に問題なかった。

学食で昼食を摂って午後1時からセミナー。昨年度オンラインで参加してくれた学生がついに進学・引っ越ししてきたので、彼も交えて今後しばらくの予定を決めた。その後1時間半ほど自分が発表。3週間前に準備してきたものを話したが、内容を忘れかけておりかなりたどたどしい感じになってしまった。最後に修論の英訳についてダメ出しがあった。

午後4時からは数学専攻のガイダンス。ほとんどが就職の話だった。

終了後は同期数人と割り振られた博士の院生室を探検した。全体的に埃っぽいし散らかっている。大量の漫画とコスプレAVを見つけたので、前者は修士の院生室に持っていき誰でも読める状態にしておいた。以前からの居住者もいるが、漫画の年代的にその人たちの持ち物ではないだろう。

学食で夕食を摂り、午後7時帰宅。TLを見たりしてダラダラ過ごしつつ何とかシャワーを浴び、午後10時半に寝た。

04/05(金)

午前5時半起床。

ハーメルンで「カードゲームで世界が滅ぶ世界に転生してカードショップを開店したら、周囲から前作主人公だと思われている」を読了した。ランキング上位に駆け上がってきた作品だけあって非常に面白かった。前作主人公という単語を筆頭にメタ的な発言が多いが、そういう世界観が主人公の超然としたあり方を後押ししている。周りのキャラから見た主人公パートもしっかり用意されていて嬉しかった。

syosetu.org

その後、ハーメルンを読んだり正午から3時間ほど二度寝したりしているうち、午後5時になったので1時間ほどミーティングに参加した。

先週生えたタスクは、現状のものを大幅に改革しないとあまり意味がなさそうだったので、別部署に任せることになった。人間同士のやり取りで使われるExcelファイルをプログラムで読むのは難しい。特に吹き出しなどのオブジェクトは、視覚的には分かりやすいのかもしれないがそもそも対応していないライブラリも多く、手も足も出ない。別のタスクを生やしてもらい、しばらくそちらに向けて調整することになった。

いくらか調べ物をした後、ゲーセンに行くため外出。大学近くの交差点を通りかかったらちょうど部活終わりの集団がいたのか自転車がたくさん走っており、春の訪れを感じた。

まず大戸屋で夕食を摂った。ちょっと多すぎた。大戸屋のセットメニューは単品の量を変えずに組み合わせてくるから注意が必要。

ゲーセンでは閉店まで16クレプレイした。一生終わらない新曲埋め。大型アップデートからこちらポゼッションを復活させられない。成果としては「Longinus」のAJが出た。調べて気づいたが14.9の初AJらしい。精度も非常に良くて嬉しい。延々続く分割トリルは必死にジタバタしたら通っただけで、あんまり押せた気はしない。

日付が変わったくらいで帰宅。結構な時間YouTubeを眺めながらボーっとしてしまったが、気合いを入れてシャワーを浴び、午前4時に寝た。

04/06(土)

午前9時半起床。ずっとハーメルンを読みふけっていた。午後2時を前に布団から這い出し、Universal Cup 27回目、Indiaセットに出た。

https://qoj.ac/contest/1586

書く:UC

Twitterのアカウント登録から11年が経ったらしい。当時は意識するはずもなかったが、登録したのはたまたま13歳という規約ギリギリの年齢だったようだ。設定された誕生日と照らし合わせたとき違反しているアカウントには容赦なくロックがかかると結構前に話題になった。そのときに自分も確認して胸をなでおろしたことを覚えている。

午後9時からABC348。

Toyota Programming Contest 2024#4(AtCoder Beginner Contest 348) - AtCoder

Aはなぜペナルティキックが題材なのかよくわからないがやるだけ。Bもよい。Cは最大と最小で混乱しそうになったので問題文をガン見しながら実装。Dは適当にDijkstra……と思ったら同じマスから何度も遷移する可能性があることに気づいた。正解は薬同士の距離をO(NHW)かけて求めてN頂点のBFS。コードをかなり書き直すことになって大幅にタイムロスした。

Eは全方位木dpで計算できる。根をずらしたときの差分と考えたほうが簡単だったらしい。パスグラフで答えが2.5e18くらいになることに気づかず、答えの初期値を1e18にしており1WA。Fはしばらく考えても分からなかったもののO(N^2M)を書いてpragmaで最適化をかけたら爆速になった。730msとまあまあ余裕をもってAC。

Gは解けなかった。\max Bを固定したときの答えがkに対して上に凸となるから、その折れ線複数の最大値を取るとして、傾きの集合の変化を追えばよいのではないかと考えたりしていた。このG問題がなんと100人に通されており、6完119位。久しぶりにABCで3桁順位を取ってしまった。

書く:G

Gのupsolveをしていたら振り返りが間に合わなかった。録画を続行し、午後11時半からCGR25。久しぶりのGlobal Roundである。

Dashboard - Codeforces Global Round 25 - Codeforces

書く:CF

2コンテストぶっ続け、7時間弱という長さの動画を投稿した。

www.youtube.com

ノクターンノベルズを読んだり日記を書いたりして午前11時就寝。

04/07(日)

午後5時に目覚ましで起床。いざAHC……と思ったら2時間早かった。寝なおすつもりがうっかりハーメルンに没頭。午後7時から、改めてAHC032に参加した。

AtCoder Heuristic Contest 032 - AtCoder

書く:AHC

「リィンカーネーションダービー ‐新人トレーナーがんばる‐」を読了。ウマ娘の二次創作において総合評価トップの作品である。昔から存在は認識していたが、あんまり勝てなくて辛そうな雰囲気のあらすじだったため敬遠していた。しかし読んでみると、確かに最序盤は負けっぱなしで苦しいところがあるものの、すぐにとんでもない実績を積み上げていくようになった。ただしそこまで読んだころにはもうストーリーやレース描写に引き込まれ、勝敗に関わらず面白いと思うようになっていた。レースやその前後のシーンが毎度毎度感動的で涙をこらえられない。

出走馬をかなり史実に寄せたらしく、ネームドウマ娘であっても容赦なく故障で休養に入っていくのがなかなか寂しいところ。そのためか競い合う相手が固定されていて、レースごとの展開の差異は少なかった印象がある。そのうえ主人公チームのウマ娘でも容赦なく負けさせるから、最後まで結果がどうなるかわからず毎回ドキドキしていた。

スマートファルコンの様子がおかしいという描写が中盤くらいから存在して、そのことには気づけたものの、どういう感情に由来するものなのか他人の感想を読むまで理解できなかったのが残念。これは原作を知らないせいだろう。教えてもらえてラッキーくらいに思っておきたい。ハーメルンの感想欄はBadが多いものが非表示になるので安心して読むことができる。

syosetu.org

日付が変わったくらいで寝落ち。

週記(2024/03/25-2024/03/31)

03/25(月)

午前10時に目を覚ましたのだが、布団でハーメルンを読んでいたら午後1時を回ったくらいに寝落ちしてしまったらしい。次に起きたのはインターン先定例会の開始時刻である午後3時半だった。飛び起きて出席。

先週は1on1以外何もやっていない。今週は先々週のミーティングの第2回開催に向けて日時を調整することにした。2回目を行うというのは同意が取れているが、先週送ったメッセージにはまだ音沙汰がない。4月以降のスケジュールがわからないのでできれば今週中にお願いしたいところ。

勉強会は高速な流体シミュレーションの話だった。流体シミュレーションとはつまりナビエ・ストークス方程式数値計算であるようだ。微分方程式数値計算は大学の講義でも触れたことがあるが、方程式そのものを理解していないので魔法みたいだという感想しか出てこない。境界条件として端の処理を変えると結果が結構違ってくる点は面白いと思う。ただ、今回はトーラスとのことだったので関係なかった。

解散後はずっと週記を書いていたが全然間に合わず、コンテストが全部穴あきになった状態で投稿。その後机で寝落ちしてしまったので、午前2時半ごろ布団に移動した。

明日は午前中に大学全体の学位記授与式、午後からは数学専攻の学位記交付式がある。前者は朝早いし会場は遠いしでモチベーションがあまりない。天気予報を確認したところ朝から雨だったので、行かないことにした。後者だけで十分だろう。ちなみに午後からは降水確率0%と書いてあったが、よく見ると晴れるのではなく雪に変わるらしい。この時期に降るとは信じられない。

いつの間にか眠気はどこかに行ってしまっていた。早起きする必要もなくなったのでハーメルンを開き、「そのウマ娘、星を仰ぎ見る」を読了。主人公がウマ娘かつトレーナーということで、レースを走る担当ウマ娘と共同で領域を開く設定が新鮮だった。

syosetu.org

次に読む作品を捜索掲示板で漁ってみたがピンとこない。結局「ウマ娘 ワールドダービー 凱旋門レギュ『4:25:00』 ミホノブルボンチャート」の読み返しを始めてしまった。

syosetu.org

午前5時半ごろ寝落ち。

03/26(火)

午前9時半起床。学位記授与式の配信を眺めながらハーメルンを読み、終了して布団に戻ってからも読み続けていた。正午くらいには「ミホノブルボンチャート」のアフターストーリーを一通りおさらいして満足し、別作品の溜まっていた更新を読み始めた。

www.tohoku.ac.jp

午後0時半に布団を脱出。シャワーを浴びてスーツを着たらギリギリの時間になったので、慌てて家を出た。すでに結構な量の雪が積もっており、足元が悪い中革靴で地下鉄駅までダッシュ。車内は学位記授与式帰りと思しきスーツ・振袖姿の人で激混みだった。

学位記交付式が開会する午後2時には何とか間に合った。学籍番号順に座席が指定されていたのだが、予め欠席の連絡を入れたらしい人の席もそのまま確保されており、特に自分は一列5人掛けの机を一人で使うことになった。他の列がすし詰め状態なのを見て申し訳ない気持ちになった。そうやってギチギチに詰めないと入りきらないから、この式は学部卒業時、感染症対策で開催されなかったのだろう。

雪で外に出られないため、数学棟前ではなくその玄関に並んで記念撮影。その後談話室に移動して祝賀会となった。

祝賀会が開会したのは午後2時半ごろ。ちょうどパ研合宿1日目の開始時刻となったので、談話室の隅で仁王立ちして参加した。もともとこのコンテストは午後2時開始だったのだが、前日に30分ずれて助かった。

パ研合宿2023 第1日「SpeedRun」 - AtCoder

Aはよい。Bはa\lt bかつc\lt dかつa\le cとなるようにswapして、a\lt c\lt b\lt dなら4、そうでなければ3。Cは最大値が正ならOK。Dは(x,y)の代わりに(x+y,x-y)を考えると、片方の次元に+2aするだけになるので簡単。Eは辺をK倍してオイラー路が存在するか判定。

Fは全部作れるんじゃないかと思って考え始めた。値が偏っていると嬉しいから、例えば2べきを並べるといい感じになりそう。しかしこれでは値域の制限からすべてのNに対する解には程遠い。別の構築を思いつくまま考えているうち、条件が非常に強く簡単には満たせないことが分かってきたので、ちゃんと考察することにした。

まず最小値は0としてよい。長さ3の部分列0,a,b0\lt a\lt bを満たすとき、条件はa\le\frac{a+b}3\Leftrightarrow 2a\le bとなる。やっぱり2べきだった!長さ4以上の部分列に対してどうなるかは調べていないが、おそらく大丈夫だろうと信じて0,2^0,2^1,\dots,2^{29}を提出し、通した。

Gは正の数があるか、負の数があるかで適当に場合分け。Hは氷の張った道を通った回数と現在時刻をコストとしたdijkstra。Iは5\times 10^5のことをN\log Nだと捉えてしばらく固まっていたが、冷静になるとN(N-1)/2である。JはO(N^2 K)のdpを書いてぐっと睨んだら畳み込みが使える形になっていた。

Kで詰まっている間に人々と交流。Twitterで何度か競プロ関係のツイートをしていた人に話を聞いたら、なんと競プロで就職まで決まったらしくかなりびっくりした。さらに自分のツイートが競プロを始めるきっかけになったとも言ってもらえて感激。また4年ゼミのときお世話になった研究室の集合写真に混ぜてもらい、先生と修論についてしばらく話した。

30分くらいそんなことをしているうちにKが解けた。最終的に立たなかったbitを一つ決めると、それを含まない要素だけ全部使うことになるはず。そうして得られたXがvalidか調べればよい。Lは最小値と2番目の最小値をできるだけ端に置くのが良い。あとは適当に埋めてよいため、二通りとも試せる。

このあたりで祝賀会が終わったはず。教室に居座ってコンテストに出続けた。Mは実験すると2べき引く2が作れるらしい。2べきのiに対してはp_i=iとし、余っているところは二つずつ組にして(p_a,p_b)=(b,a)としていった。ただし奇数個余る場合は(p_3,p_5,p_6)=(3,5,6)で調整。小さいNに対しては埋め込んだ。

Nは(h,w)が負け状態であることとhw-\min(h,w)\lt K\le hwが一致する。h\le wとして式変形すればw-1\lt\lceil K/h\rceil\le wより1\le h\le\sqrt Kw=\lceil K/h\rceil。これによって負け状態そのものに加え、一手操作することで負け状態にたどり着けるものも分かった。つまり、HまたはWA:=\bigcup_{h=1}^{\sqrt K}\{h,\lceil K/h\rceil\}に含まれていればよい。

ここからは単なるエスパー。K=1のときH=1またはW=1を踏むと負けることから、石の数が(H-1,W-1)である2山Nimで解ける。Kが一般の場合はAを踏むと負けるので、石の数をH-\#\{a\in A\mid a\le H\}などとした2山Nimで解けると思った。面積K以上という条件がどこに行ったのかは知らない。H,W\not\in AならH=Wを判定することになるので、たまたま結論が想定解法と一致しただけではないかと考えている。

残り時間1分半での滑り込みでNを通し、14完8位。SpeedRunと言いつつ難しい問題が出るのはパ研合宿では毎年恒例だが、やっぱり序盤で詰まると苦しい気持ちになる。BFJKがその前後の問題と比べて難しかった。

教室にはもう誰も残っていない。最後に入学式・卒業式恒例のスーツ姿の自撮りをし、厚みを増した雪を踏みしめて帰宅した。

家に辿り着いてすぐ着替え、布団に倒れこんだ。少しハーメルンを読んで午後7時過ぎに寝落ち。

03/27(水)

午前1時起床。ハーメルンの更新を読み続けていた。「今日も楽しく安価だ!」の最新話まで追いつき、続いて「貴方の強さは私が知っている。」を開いた。

syosetu.org

syosetu.org

途中2時間半ほど寝たりしながら読み続け、午前10時半ごろに300話までたどり着いた。主人公は無事無敗のまま現役を引退しトレーナー編に突入。やっぱりセリフ回しが受け入れにくいため、一区切りついたことだしここで切り上げることにして、新しい作品を見繕い読み始めた。

午後1時半、布団を抜け出してパ研合宿2日目に参加。外を見たら昨日の雪がもう解け消えていてびっくりした。しばらく残るタイプの積もり方だと思ったのだが……。

パ研合宿2023 第2日「パ研杯」 - AtCoder

書く

「あなたはノースティリスの冒険者ではない。(ウマ娘×Elona)」を読了。「目覚まし時計」を筆頭にウマ娘アプリの超常的なアイテムがいくつか出てきて、その不自然さがElonaの殺伐とした感じと合わさり、ウマ娘二次創作としては新感覚の読み味だった。ところで「目覚まし時計」はそのぶっ飛んだ効果から最初Elona由来だと思っていた。原作を知らないが故のミス。ほかにも見落としたネタがあるんだろうなと思う。

syosetu.org

食事してから、また「ミホノブルボンチャート」の読み返しを始めた。昨日はアフターストーリーを読んだので今日はメモリー掲示板回をおさらいしていた。

午後8時頃寝落ち。午後11時半に目覚ましで起きたが、布団から出られずCodechefは断念した。2時間ほどハーメルンを読んでまた就寝。

03/28(木)

午前6時起床。3時間ほどハーメルンの読み返しを続けていた。一段落したところでキリがないため布団を脱出。昼までシャワーを浴びたり日記を書いたりしていた。

「冬季限定」の発売日が決定したらしい。忘れず予約したい。

学食で昼食を摂り、ラノベを受け取って帰ってきた。午後1時半からパ研合宿3日目。

パ研合宿2023 第3日「Teamwork」 - AtCoder

書く

M2後期の単位集計ツイートをした。学務情報システムから単位取得状況を確認しようとしたら、年度の切り替わりを待たずアカウントが消えたのか見られなくなっていて焦った。今期はそれぞれ4単位、8単位の必修を取っただけなので記憶から復元。ちなみに評価も覚えていて、最後に見たときはCが付いていたはず。そ、そんな……。

結構な眠気があるが、次の予定まで1時間半しかなかったため仮眠できずグダグダ過ごしていた。

午後6時半から、月曜日に言っていた第2回ミーティング。1時間ほど話し合った。なんだか機械学習ではない開発のタスクが生えた気がする。心機一転頑張っていきたい。詳細を詰めるため、来週金曜日に第3回のミーティングをすることになった。

布団に戻って午後8時から3時間ほど仮眠し、CF #937 div.4に出た。10分こどふぉって午後11時45分開始。

Dashboard - Codeforces Round 937 (Div. 4) - Codeforces

Aは出力が3種類あって面倒。Bはよい。Cはさすがに怠すぎる。Dはあらかじめdpで全部判定しておく。Eはnの約数kを全列挙し、それぞれチェック。このチェックが微妙に面倒。Fはa+1=cが作れる条件で、高さを最小化するためにはまず次数2の頂点を完全二分木のように配置してしまうのが良い。あとは算数。Gは自明なbitDP。ただしg_i=g_j\lor w_i=w_jの判定は時間がかかるため前計算しておく。

CとEで時間を取られて20位。Dは(10^5)^2をint型で計算してしまっている部分があったが、幸いオーバーフローしても負の数にはならなかったようで助かった。

www.youtube.com

TCBの2024/03回が開催されていたので参加した。今回は難易度6までの全8問ということで簡単。

https://techful-programming.com/techful/event/5621

5問目までは自明。6問目はSmall Multiple典型。7問目は実験すると、(1,0,0,\dots)という列から初めて何度か累積和を取ったものが縦横に並び、その積が各マスに入るらしい。二項係数で計算。行の和・列の和で置き換えるものと誤読したり、二項係数を合わせるのに手間取ったりで14分かかった。8問目は直径の端点のどちらかが最遠点になる性質を使う問題で、最近よく見るから素早く反応できた。

難易度6までしかないので順位表は完全に公開されている。何とか理論値を出せたものの、3分半の差で2位となった。7問目で時間を溶かしていなければ優勝も狙えたかと思うと非常に残念。まあ期間は今週末までだから、これからもっと速い人が出てくる可能性もある。

机で寝落ちしたので午前4時頃布団へ移動。しかしスマホを触っていたら眠気が覚めてきたため、起き上がって食事したりゴミを出したりした。

カクヨムで「スレ主がダンジョンアタックする話」を読了。ヒロインがヤンデレで肌に合わない。

kakuyomu.jp

シャワーを浴びて午前9時半就寝。

03/29(金)

正午起床。今日は夕方から両親が来る。それまでに少しゲーセンでも行こうかと思っていたのだが、睡眠時間が足りないためまだ寝ていたい気持ちもある。1時間ほど迷ってからようやく出発した。

学食で昼食、購買でラノベ受け取り、クリーニング屋にワイシャツを預け、本屋で予約していた古典部シリーズ愛蔵版の第3弾を受け取った。外出に際し済ませておきたかったことはこれで終わり。

ゲーセンで7クレ遊んだ。相も変わらず新曲埋めが続いている。「taboo tears you up」のULTIMA譜面はネットでは不評のようだったが、実際やってみると思ったより押せて楽しかった。終盤は勘で手を動かしてハマり待ちという感じだからAJは難しそう。ラストのタップスライドの速さもよくわかっていない。

午後4時過ぎ、車で仙台に来た両親に拾ってもらい帰宅。2時間ほど仕送りを整理したり水回りの掃除をし(てもらっ)たりしてから買い物と夕食に出かけた。

イオンでバナナを大量に買ってもらった。数えたら28本あったので、ツイートの絵文字も28個並べてある。

夕食はスシロー。両親も自分も初スシローである。わさびがセルフサービスだったり醤油皿がなかったりと慣れないシステムだったが、自分はそういうコストカットについてYouTube Shortsで予習済みだったため、直ちに適応することができた。またその安さに驚き。味も特に悪いとは感じず、企業努力に感心していた。

www.youtube.com

帰宅して両親と別れたのが午後9時過ぎ。今日のyukicoder 424はいつもより20分早く始まっていたので、10分ちょっと遅れての参加となった。

yukicoder contest 424 - yukicoder

書く

シャワーを浴びて午前1時就寝。

03/30(土)

午前8時起床。カクヨムを読んでいた。

「ダンジョンキャンパーズ~世界で唯一、冥層を征く男は配信で晒された~」を読了。主人公が持つダンジョン素材なり特別な知識なりを狙う悪意が描かれる作品はたまにあるが、基本的に主人公が超人的に強いためあまり問題にならない。しかしこの作品では戦闘力がそれほどないという設定だったためかなり冷や冷やした。クランに入ったのもそれ以外の選択肢がなかったからという感じなのでモヤモヤする。

kakuyomu.jp

正午くらいにまた寝て、次に起きたら午後6時半になっていた。またカクヨムを読んで過ごし、午後9時からABC347。

AtCoder Beginner Contest 347 - AtCoder

書く

www.youtube.com

午後11時半からはCF combined、CodeTON Round 8。

Dashboard - CodeTON Round 8 (Div. 1 + Div. 2, Rated, Prizes!) - Codeforces

書く

www.youtube.com

しばらくハーメルンを読んでいたら急に強い眠気に襲われ、布団に倒れこんで寝た。午前7時前後だったはずだが詳しい時間は不明。コンテストの動画2本は公開に向けた作業ができておらず、翌日改めて行った。

03/31(日)

午後0時半くらいに目を覚ましてしまった。

カクヨムから「グルメダンジョンからの飯テロ(意味深)配信ーダンジョン食材に魅せられた僕は偶然助けた大人気配信者のクラスメイトに配信へと誘われるー」を読了。主人公の言動が幼すぎる。

kakuyomu.jp

ちょうどいい時間だったのでyukicoder 425に出てみた。

yukicoder contest 425 (MMA Contest 018) - yukicoder

書く

食事した後、作業して昨日の動画を2本公開した。午後4時頃布団に戻るもなかなか眠れず、ハーメルンを開いてしまう始末。「三大始祖に転生したのでトレーナーになって推しをハスハスする」を読了した。別の作品から作者つながりで読んでみたが、案の定ウマ娘を推す姿が過剰でちょっと見ていられなかった。

syosetu.org

眠いから仮眠したいという気持ちとAGCが近いから起きておきたいという気持ちの板挟みになり、午後5時半くらいから一瞬だけ寝てみることにしたのだが、なかなか起きられず結局午後8時くらいまで寝ていた。食事したりシャワーを浴びたりして眠気を振り払い、午後9時からAGC066。

AtCoder Grand Contest 066 - AtCoder

書く

www.youtube.com

maspyさんが実況動画についていろいろコメントを残してくださった。自分も改めて見返していたが、AもBも初手でかなり正解に近づけているように見える。それなのになぜ1時間ずつかかってしまったのか、自分でもよくわからない。構築で詰まったときは何を反省すればよいのだろうか。

TCBが終了していた。結局2位のままだった。

日記を書いて午前10時就寝。

週記(2024/03/18-2024/03/24)

03/18(月)

午後2時半起床。寝る前に勉強会スライドをホスフィンに送り付けておいたらコメントが貰えたので、それに沿って仕上げの微調整を行った。

午後3時半からインターン先定例会。先週はミーティングして機械学習を回した。学習は完了しているのだが結果をあまり真面目に見ていないので、今週はそれをチェックしたい。ただ数値的には残念ながら以前より微妙に悪化してしまった。そんなことは途中経過から明らかだったので、とっとと停止して次の実験を回すべきだったのかもしれない。

午後5時ちょっと前から発表者として勉強会開始。結構気合いを入れてスライドを作ったため、話し終えるまで1時間ほどかかった。コンテストの動画を撮るのとあまり変わらない感覚で喋っていたが、出席者がリアルタイムで聴いている今回は倍速もスキップもできないのだから、発表時間が長くなりすぎないよう気を使うべきだった。

その後質疑応答。2次元セグメント木の説明はスライド2枚では足りなかったらしく、質問が来た。考えれば考えるほど自明な拡張だという気持ちになってしまいあっさり流してしまったのだが、発表で初めて触れる方のことを考えていなかった。

また遅延の解消について、18ページ目では解消できない話をしつつ28ページ目では解消しなくてよいと言っている食い違いの指摘もあった。気づいていなかった。遅延・遅延の解消という概念は1次元セグメント木にしか存在し得ない概念だと思っているのだが、2次元の説明にその言葉を使おうとして無理が出たのだろう。

解散後にスライドを公開した。

勉強会0318.pdf - Google ドライブ

それから夜中まで先週の週記を書いていた。毎週、週末から次週月曜日にかけて慌てて書いている週記だが、先週はその時間を勉強会準備に充ててしまったため未だスカスカ。結局穴あきの酷い状態で投稿した。

追記しようとは思ったものの眠気が強くて動けない。少しPCの前で粘ってみたがどうにもならなかったので、素直に布団に入った。午前1時半就寝。

03/19(火)

午前7時半に目を覚まし、ハーメルンで溜めていた更新を読みふけっていた。午後1時になって二度寝

午後4時半に目覚ましで起きて、午後5時からCF #935 div.3に出た。

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

書く:CF

www.youtube.com

食事した後は朝読んでいた更新分を最新話まで追い、続けざまに同じ原作の別作品を読み返し始めてしまった。日付が変わったくらいで寝落ち。

更新分を読んでいたのは「貴方は中央トレセン学園から追放されることを希望しています。」で、読み返していたのは「【完結】閃光と隼と風神の駆ける夢」。

syosetu.org

syosetu.org

03/20(水)

午前6時前に目を覚まして読み返しの続き。といってもさすがに最初から読んでいくほど理性を失ってしまったわけではなく、クライマックスであるドバイワールドカップデーのみだったため、今日2時間を溶かしたところで無事一段落つけることができた。

身を起こして先週の週記への追記を始めた。昼食会と家飲みについてとっとと書いてしまいたいのだが、しゃぶしゃぶの感想を書くところで完全に筆が止まってしまった。メインである肉の印象が残っていない……!あれこれ考えても文章が出てこなかったので、結局コンテストの感想をいくつか書き足しただけで今日は終わりにし、午後4時過ぎに布団に戻って二度寝した。

午後8時半起床。午後9時からyukicoder 422に出た。普段と違う曜日、時間帯。

yukicoder contest 422 (第1回 競技プログラミング講習会作問企画コンテスト) - yukicoder

書く:yukicoder

午後11時半からはCodechef Starters 126に出た。

https://www.codechef.com/START126A

書く:CC

食事してから久しぶりに小説を開き、朝までかけて「アルゴリズムの乙女たち」を読了した。最近界隈で話題になっていた競プロ小説である。徳間文庫というレーベルごと新刊チェックから漏れており、慌てて先週買ってきた。

自分は競プロを完全に個人の趣味、もっと言えば個人で完結した趣味だと思っており、それを通した人間関係の描写全般にあまり納得できなかった。……ストーリーを真っ向から否定するような感想になってしまった。強いこだわりのある物事をテーマにした小説はそのこだわりが邪魔をしてまともに評価できない、ということであとは細かい描写の話をいくつかするだけにしたい。

プログラムの動作を説明する際「判定させる」「出力させる」のように使役の形で書いていたのが目についた。自分はどちらも「~する」で書く。コーディングをパズルに見立てるのは、自分にも実感のあることだから感心した。夏合宿の間コンテストに出ていないのは良くない。実際のコンテストに勝る精進は存在しない。

ところで、個人戦なのか団体戦なのかよくわからないルールの大会だったが、もし競プロがeスポーツとして市民権を得られたなら決勝のルールは盛り上がるだろうなと思った。40分一問の勝負はレート差が勝敗に直結しにくい。自分も2700に届いていないくらいの頃、似たルールでACRushさんに勝った経験がある。

1対1のトーナメントがある。短い時間で1問解いて、点数が高いほうが勝つ。僕は16位なので、初回の相手は1位のACRushさんだ。

週記(2020/09/21-2020/09/27) - kotatsugameの日記

そういえば、チラッと出てきた問題に照明とスイッチを扱うものがあってびっくりした。自分が昔書いた短編で扱った問題と共通している。偶然だろう、と言っておくが、何分小説という分野においては狭い界隈だから、もしかしたら?なんて気持ちもある。もしそうなら光栄な話だ。

#執筆応援PJ21Sep #競技プログラミング 眠らないビル - こたつがめの小説 - pixiv

布団に移動してハーメルンをいくつか読んだ。

「気付いたら赤木しげるの娘だったんですが、」の現在進行中の章が完結した。これまで何度もエタりそうになりつつ、しぶとく更新が続けられている。かなり好みの作品であるため非常にありがたい。この先も気長に待ちたい。ついでに同作者の新連載である「星天」を読んだ。まだ2話しかないのでこれから。

syosetu.org

syosetu.org

「愉悦ってる奴が実は最強なのをやりたい!」を読んだ。5話でエタっている。続いたとして読んだかどうか……タイトルには同意するところだが主人公がメスガキなのはあまり好きではない。

syosetu.org

午前11時就寝。

03/21(木)

午後3時前に起床し、1時間の1on1に臨んだ。

これからやることの相談。もしかしたら触ったことのない技術を使って何かツールを作ることになるかもしれない。競プロerはそういうの得意ですよ、みたいな言説をよく聞くし自分も信じているが、いざそういう状況に当事者として直面すると少しは不安を覚える。技術的に可能かどうかと仕事としてできるかどうかは全く異なる話。

解散した後はとっとと布団に戻ってハーメルンを開いた。「最速×無敵=驀進王」を読了。「今日も楽しく安価だ!」という主人公があり得ないくらい強い作品と同作者だから、今作も強いだろう。今のところ実際にそうである。描写があっさり目なのは引き続いての難点。

syosetu.org

午後6時から4時間寝て、2時間起きてハーメルンを読み、2時間半寝た。

午前6時頃に「転生チートトレーナーはモブウマ娘を三冠にできるのか。」を読了。主人公がトレーナーとしてチームを率い、GⅠを総ナメにしていく話が好み。ウマ娘主人公だと、どんなにチート設定でも最初にクラシック三冠かトリプルティアラか選んだりして出走しないレースが存在しがち。その壁を破壊したのは、自分が覚えているのだと上でも挙げた「今日も楽しく安価だ!」くらいだろうか。

syosetu.org

シャワーを浴びた後しばらくラノベを読んで、午前9時くらいにさあ寝ようかとしたのだが、結局スマホハーメルンに没頭し続けてしまった。午後2時頃、今の時間から寝ると今週やるべきだったことが何もできないままになってしまうことに危機感を覚えて外出した。

大学に駐めたままになっていた原付を回収し、その足でクリーニングに出していたスーツを回収したり給油したりして、いったん帰宅。今度は購買に行ってラノベを受け取り帰ってきた。スーツに関しては学位記授与式が来週火曜日にあって、今日受け取っておかないとまずかった。

雨が降ってきてしまったため、原付は大学に置き去りにして地下鉄で帰る。

週記(2024/03/11-2024/03/17) - kotatsugameの日記

クリーニング屋にスーツを出した

週記(2024/03/11-2024/03/17) - kotatsugameの日記

午後4時半くらいに就寝。

03/22(金)

午後9時起床。20分後からyukicoder 423に出た。

yukicoder contest 423 (Asakatsu Presents 3) - yukicoder

書く:yukicoder

今日はあさかつメンバーによるコンテストの第三回で、第二回と同様コンテストの様子の撮影を頼まれていた。振り返りまで終えた後すぐアップロードしたものの、動画処理に時間がかかり公開は直後のCFが終わってからとなった。

www.youtube.com

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

Dashboard - Codeforces Round 936 (Div. 2) - Codeforces

書く:CF div.2

www.youtube.com

ハーメルンで「キラキラの一等星」を読了。シンボリルドルフの一個下という年代で目新しい。学年とレースとの関係がかなりしっかり設定されており、それによれば中等部一年生はまだトレーナーの下につくことすらできないらしい。その期間も丁寧に描き、さあこれから、というところでエタりかけており残念。

syosetu.org

ラノベ「玄関前で顔の良すぎるダウナー系美少女を拾ったら」を読了。ヒロインが主人公に惹かれた理由も、ヒロインの家庭問題も、まだ何一つ具体的に描かれていない。ヒロインの考えが読めず、終盤までどんな裏があるのかひやひやしながら読んでいた。ラストシーンを読んだ今は裏があっても悪いことにはならないだろうと思えている。家庭問題についても、どうやら親とのすれ違いらしいからそのうち円満に解決されるだろう。

ラノベの新刊チェックを行い29冊注文。その後別のラノベを開いて読み進め、午前10時半に寝た。

03/23(土)

午後2時前に起床。Universal Cup 26回目、Latin Americaセットに出た。

https://qoj.ac/contest/1576

書く:UC

食事してシャワーを浴び、午後9時からABC346に参加。

UNIQUE VISION Programming Contest 2024 Spring(AtCoder Beginner Contest 346) - AtCoder

書く:ABC

www.youtube.com

明日はDDCC本戦のため朝早くに起きる必要がある。とっとと布団に入り、寝る……前にラノベ「物語に一切関係ないタイプの強キャラに転生しました」を読み切った。

少し前にTwitterで、面白くない作品に対する「知らない作品の二次創作」という評価を目にした。到底人の心があるとは思えない表現に恐れおののいたものだが、正直に言うと今、このラノベに対する言葉としてちょうどいいと思ってしまった。それも、字面の意味そのままではなく、悪評であるという背景も込めた上で。

例えばゲーム・アニメの悪役に転生するラノベが最近多い。それらも確かに知らない作品の二次創作ではあるものの、だからといって面白くないとは決めつけられない。しかしこの作品は残念ながら面白くなかった。原作を破壊しないよう主人公たちと距離を置くという点では他作品と変わらない。しかしその上で他作品の悪役たちは、自身の境遇を良くするため、などと自主的にいろいろ行動していた。一方この作品では主人公が無気力なように見える。面白くなかった理由が本当にこれで正しいかわからないが、振り返ってそう思った。

日付が変わったくらいで無事就寝。

03/24(日)

午前5時起床。

書く:DDCC

日付が変わる前に帰宅。しばらく日記を書いていたが、どうにも眠かったため布団に入った。午前4時過ぎ就寝。