07/08(月)
午後3時過ぎ起床。半からインターン先定例会に出席した。進捗は……ない。
勉強会はサイバー攻撃の手法についての話だった。最近LockBit 2.0についてのブログを読んだのでタイムリー。攻撃先に共犯者がいれば物理的なアクセスによってサイバー攻撃を行いやすくなるが、LockBit 2.0はこの共犯者を募る文書を感染したPCの壁紙として設定するらしい。怖い話だ。
そのあとは先週の週記を書いていた。日付が変わる前に投稿。
ABC361-Fの最短コードを読むため、Nibblesの再帰関数の仕様を、Haskellにトランスパイルされた後のコードを眺めたりして何とか理解した。公式ドキュメントやテストとして書かれた例はちょっと不親切すぎ。まずこの演算子`;
が四つ引数を取ることが分かっていなかった。順に呼び出し引数、継続条件、ベースケースにおける値、そしてメインの処理である。Quick Refにある例`; 5 $ 1 *@-$~$
を例に取って見てみよう。
まず呼び出しの引数は5
。つまりを計算している。そしてこれ以降再帰関数の引数に$
でアクセスできるから、継続条件の$
は引数がNibblesの評価で真、すなわち「引数が正」を表している。ベースケースの値は1
。当然ここでも$
が使える。そしてメインの処理では$
が引数、@
が関数本体となっていて、を表す。確かに階乗を計算できている。
nibbles/Ops.hs at 62a912f5fead02162ccb77a9d4a553a180a7f685 · darrenks/nibbles · GitHub
ゴミ出ししてシャワーを浴び、午前5時頃布団に入った。
スマホを見たらTopCoderからメールが来ていた。現在のArenaが閉鎖されるらしい。それに伴ってSRMもしばらく開催されなくなる。メールではあくまで一時的な休止だと言っているが、最近のTopCoderのグダグダっぷりを見るに復活する可能性は低そうだ。それどころか過去問アーカイブもComing Soonのままずっと放置されるのではと思っている。
・07/15をもってTopcoder Arenaはapplet版もWeb版も終了
— こたつがめ (@kotatsugame_t) 2024年7月8日
・SRMの開催は新しいプラットフォームが用意できるまで休止
・SRMの過去問は以下のリンクから見られるようになる予定https://t.co/wxLUMNJ37s
ラノベ「玄関前で顔の良すぎるダウナー系美少女を拾ったら」2巻を読了。1巻では退廃的な雰囲気を感じつつも、ラストの主人公とヒロインの和解を見て、そう悪い流れの話ではないんだなという印象を抱いた。そこからヒロインの家庭問題も円満に解決するだろうと考えていたのだが……とんでもない。この巻での決着は自分から見れば破局そのもの。ヒロインが主人公だけは特別に思っているからこそ、1巻のような結末に至れたらしい。
別のラノベを読み始め、いつの間にか寝落ちしていた。正確な時刻は不明だが午前8時以降で、もしかしたら午前9時を回っていたかもしれない。
07/09(火)
午後6時に目を覚まし、ゲーセンに行こうと考えつつもうっかり二度寝してしまった。次に起きたのは午後9時。まだギリギリ遊びに行けると判断し、即座に準備を整えて外出した。
腹ごしらえはせずゲーセンに直行し、閉店までに13クレプレイ。理論値狙いをしていたらありとあらゆるところで赤が出てしまい、捨てゲーを重ねた結果2時間もプレイできなかったのにこのクレ数になった。空腹なのが悪かったのだろうか。諦めて未プレイの14のAJ埋めをしたらまあまあまともなスコアが出たため、成果はゼロではない。また閉店間際に解禁した「colorful」は理論値が出せた。曲が非常に好み。
今日は13クレ pic.twitter.com/dsiyDLVt2O
— こたつがめ (@kotatsugame_t) 2024年7月9日
帰りに油そばを食べた。途轍もなくお腹が空いているから普段よりワンサイズ大きく、さらにトッピングをつけても余裕だろうと考えたが、終盤はギリギリだった。よく混ぜずに食べ始めてしまい、器の底にたまったタレの味の濃さにやられたという感覚。今後は念入りに混ぜることを心掛けたい。
ドンキに寄って帰宅。シャワーを浴びた後、布団に入ってラノベを読んだ。
「女友達は頼めば意外とヤらせてくれる」3巻を読了。新ヒロインはあまりにもボーイッシュすぎて、女の子らしさがギャップではなく違和感に思えた。好みでない。以上!
午前5時くらいに寝落ちした。
07/10(水)
午前7時に目を覚まし、ラノベを読んでいた。
「女友達は頼めば意外とヤらせてくれる」4巻を読了。ヤンデレは勘弁してくれ!確かどこかのサイトで4巻だけ年齢制限がかかっていた気がするが、もしかしたら性的描写が過剰すぎたのではなく監禁パートが引っ掛かったのかもしれない。こんな重い話は辛いな、と思いつつ読み進めていたら、ヒロインの承認欲求を主人公の絶倫さで満たして手早く解決してしまった。絶倫さがちゃんと意味のある設定になっていて、ちょっと面白かったし感心した。
午後1時に「にじさんじ甲子園2024」の開催がアナウンスされた。PVを見ると主催に活動休止中の舞元啓介さんも名を連ねていて仰天。ついに復活されるらしい。
野球の時間だあああああああああああああああああああああああああああああああああああああああああ https://t.co/KmVaXv0Nfu
— 舞元啓介👨🌾にじさんじ (@maimoto_k) 2024年7月10日
寝落ちして起きたら午後8時になっていた。またラノベを読んだ。
「ギャルに優しいオタク君」2巻を読了。主人公・オタク君のギャルに対する優しさとは、彼の持つネイル・メイク・ヘアアレンジ技術だったはずだが、この巻ではほとんど取り扱いがなく残念。1巻で仲良くなったヒロインのギャルがオタク君の趣味を理解しようとする一方だった。そういう展開だと個人的には気まずさや手間を取らせる申し訳なさが勝ってしまう。いたたまれない気持ちになりながら読んでいた。
あーだこーだーでABCの賞品に関する話が出たらしい。どうやら公式として飛び賞を推奨する方針となったようだ。理由を理解できないわけではないが、それはそれとして個人的には残念に思ってしまう。まあ昔のスポンサードが滅多になかった時代に戻ったということで。
今後のABCは分かっている限り賞品がすべて飛び賞になっている。もしかしたらこれが最後の順位賞だったかもしれないと思うと非常に残念。
週記(2024/07/01-2024/07/07) - kotatsugameの日記
「純情ギャルと不器用マッチョの恋は焦れったい」を読了。こういうラブコメの友人キャラといえば、恋に悩む主人公・ヒロインに適切な助言を与える「良い奴」だが、この作品だとその印象は薄い。特に中盤あたりの友人同士の衝突が原因であまり好きになれなかった。一方主人公とヒロインはどちらも非常に好感の持てる言動で、見ていて気持ちよかった。もしかしたら彼らを基準にして友人を評価した結果このようになったのかもしれない。
午後11時半からCodechef Starters 142に出た。
https://www.codechef.com/START142A
書く
日記を書いて午前4時就寝。
07/11(木)
午後0時半起床。今週のセミナーはお休みである。
午後1時から1on1に臨んだ。3月末以来である。新年度はしばらく学業の様子を見たい、と言ったまま特に連絡を取らなかった結果このような事態に陥った。近況報告を行い、今後のタスクについて話し合って1時間で終了。今後また定期的な1on1を復活させていくことになりそう。
久しぶりに社会的な話をしたので疲れ果て、布団に戻ってラノベを開いた。午後5時前から3時間ちょっとの寝落ちを挟んで読み続け、午後11時になって布団を脱出。シャワーを浴びて半からCF #957 div.3に参加した。
Dashboard - Codeforces Round 957 (Div. 3) - Codeforces
書く
ラノベを2冊読了。
1冊目、「悪役御曹司の勘違い聖者生活」3巻。敵に捕らわれたヒロインを主人公が助けに来る王道の展開。勘違い要素はほとんどなく、あってもこの展開には一切関わらない。主人公が自ら行動を起こし、強大な敵に立ち向かって勝利するというストレートなかっこ良さで、好みだった。そしてついに「聖者」という称号が授けられてタイトル回収。しかし主人公に聖なるものという印象はないので、ちょっと違和感。
2冊目、「やり直し悪徳領主は反省しない!」。主人公の内心考えていることが言動に表れないタイプの勘違いもの。無難なセリフにかっこ書きで内心の描写が差し挟まれるため非常に分かりやすかった。主人公に命の危機が迫ると、オートモードのようになって圧倒的な武力を発揮するらしい。この設定もそれはそれで悪くないかも。通常時の目の色は青でオートモードだと赤になる、という設定がカラーイラストでも丁寧に表現されていた。
しばらくネット小説を漁って午前8時半就寝。
07/12(金)
正午起床。急いで食事し半からのWTF2024に備えていたが、オンサイト会場のネットワークトラブルでこどふぉった。正確な開始時刻が未定だったため大学生協にも行けない。
待つ間にハーメルンの「すくつ廃人が少女をすくつに潜れるようになるまで鍛え上げるお話」を読了。面白かった。Elona原作だとよく地の文が「あなたは○○だ」一辺倒になるが、この作品は普通の小説のような言葉遣いがなされていた。それでいて世界観は完全にElonaだったのでなかなか新感覚。
WTF2024は75分遅れの午後1時45分に開始した。動画は撮影しなかったが、こどふぉったのが原因ではない。もともとそう決めていた。
World Tour Finals 2024(Open Contest) - AtCoder
Aは大変だった。オンサイトのほうで開始5分でFAが出たのを見て、綺麗で簡潔な解法があるのだろうとわかっていたのだけは救いか。とんでもない実装になりそうな方針を避けつつ何度も考え直していたら何とか当たりが引けた。
とりあえず選ぶスライムは端に寄っているほうが嬉しそう。実験して正しさを確かめた。実は三分探索できるのではないかとも考えたが、これは正しくなかった。
実験コードを書いているとき、隣接する重さと重さのスライムが速さで相対的に近づいていくことに気づいたため、今度はこれを発展させようと考えてみた。各スライムの間の距離がすべて0になるまでの時間を求めたり、両端のスライムがどれくらい近づくかをこの速さの和で捉えたり。
残念ながらこれらは全くうまくいかなかった。後者については両端のスライムの重さが重要となるため、その変化をすべてのprefix/suffixについて差分更新で求め、うまくマージできないかと思ったが、明らかに実装が爆発するため棄却できた。
ここでようやく、スライムの重心が変化しないことに気づいた。全体として変化しないだけでなく、適当な部分集合を取っても似たことが言えて、その中で合体し続ける限りは重心が一定速度で動き続ける。そこで、スライムを左右に分け、二つの群体それぞれについて全体の重心の位置に到達するまでの時間を考えてみることにした。
スライムはもともと全体のprefixとsuffixから合計匹取っているから、分割もそれを用いるのが自然。しかし計算してみると、愚直と合ったり合わなかったりする。分け方をいろいろ弄ってみてもこの状況は変わらなかった。
ただ、この解法のシンプルさはかなりそれっぽい。諦めずにガチャガチャしていたら、匹の取り方すべての中での最大値は合っていることが分かった。最適でない取り方をした場合だけずれてしまっていたらしい。またのときもなぜか合わなかったので、これはに高速化してあった愚直を用いることにして、恐る恐る投げたら通った。
なんと4時間かけてしまったらしい。次にBを読むも、何もピンとくるものがない。諦めて大学生協に行ったら、移動中に一つそれっぽい解法を思いついたので、慌てて帰宅して即座に実装に入った。
各ペアがswapされる確率を求め、足し合わせたい。1
と0
のペアについて、で1
より左にある別の1
の個数を、で0
より右にある別の0
の個数をとしたときにになると考えた。
愚直を書くと……合わない!残念!今度こそ諦め、もう一度外出してATMに行ってきたらコンテストが終了した。Openでの順位は50位。Bはとしていたら正解だったらしい。正直惜しくも何ともない。
ラノベを読み、午後9時からyukicoder 436に出た。
yukicoder contest 436 ('09 Contest 002 day1) - yukicoder
書く
Amazonの定期おトク便の支払い方法に問題があるとメールが来た。これまでは代引きを指定し、アマギフ残高から優先的に支払わせていたが、代引きが指定できなくなったのでこういうことになったようだ。代わりの選択肢はクレカ・デビットカードしかないものの、持っていないので不可能。どうしようもないので、困ったら手動で買うことにしてとりあえず放置。
「俺は義妹に嘘をつく」を読了した。生協で間違えて買ったラノベの1巻。ラブコメディと言いつつなかなか重そうな設定だし、マッチングアプリから始まるストーリーは最近よく見るものの全く興味が惹かれないし、ということでこういうイベントでもなければ手に取らなかったであろう一冊。タイミングを逃すと絶対に積むだろうと思って、夕方に受け取ってきて早速読んだ。
読んでみるとラノベというより一般小説のような感じでしっかりしており、面白くないなと思うことはなかった。はっきり面白いと言い切れないのはその設定・ストーリーの重さによるもの。思っていた数倍で、早く逃れたいとページをめくる手が速まった。あとは、別にマッチングアプリを導入として使う必要はなかったのでは、と思う。
午前2時半ごろ寝落ち。
07/13(土)
午前7時起床。「俺は義妹に嘘をつく」2巻を読了した。地元を離れて山奥の集落で住み込みで働く夏休みの話。恋愛パートがほとんどを占めており、ようやくラブコメらしくなってきたな、という感じ。ただし通話で一瞬だけ登場した母親とのいざこざがピリリと効いて、主人公とその義妹が置かれた状況を実感させてくる。そこ以外は面白かった。
しばらくなろうを読んで午前10時にまた寝落ち。起きたら午後6時半だった。今日のUniversal CupはUTPC2023セットだったため不参加。コンテストまで布団でなろうを読み続けていた。
シャワーを浴びて午後9時からABC362。
Toyota Programming Contest 2024#7(AtCoder Beginner Contest 362) - AtCoder
Aは面倒。頑張って場合分け。Bは内積を3通り計算する。Cはからインクリメントして達成する。Dは頂点倍加。Eは適当にdpしたらになったが、で爆速だったので出した。
Fは前回のUCでカクタスグラフ・構築なしの問題が出題され、その時にdfs順で並べて個おきにペアを作ると上界が達成可能だと聞いていた。しかしが奇数のときがよくわからない。まあ重心を抜いておけばOKかなと思って適当に出したら通った。
F は UC で類題(偶数限定・構築なし・カクタス)が出て感想戦で構築について話したばかりだったhttps://t.co/zDhgfc2hLH
— risujiroh (@risujiroh) 2024年7月13日
GはSuffix Arrayで頑張る。頑張らなくても自分のライブラリにあったらしいが覚えていなかった。
全完、EFGでそれぞれ手間取って10分ずつかけたのが響いて17位。Fは改めて重心に注目して考えると示せた。が奇数のとき、重心を取り除いても上界は変わらず達成可能となっている。コードゴルフはAとBをNibblesで書いて、Aはボロ負け。
なろうを読みつつ少しだけ数値計算を行った。適当に試したアイディアがうまくハマって進展があったかと思ったものの、完全にはうまくいかなかった。
午前9時前、トランプ前米大統領が演説中に銃撃された。まずその瞬間の動画が速報で流れてきて、少しすると1枚の写真が急激に拡散され始めた。そのあまりにも完璧な構図は一目見るともう忘れられないもの。そう思ったのは自分だけではないようで、その後この写真は、事件の話題性に加えて写真の完成度の点でも注目されているようである。
数値計算の結果をまとめて関係者にメールし、午後2時半就寝。
07/14(日)
午後6時半起床。コンテストが何もない日なのでゲーセンに行く。腹ごしらえは、立ち食い蕎麦屋が休みの日だったのでやよい軒にした。
今日は閉店まで18クレプレイした。まず火曜日に理論値狙いをしていた2譜面を改めて詰め、無事達成。どうやら空腹でダメだったのではなく単に譜面が苦手だったらしい。「匿名M」は手を交差して2連打するのが難しい。しかし「おくすり飲んで寝よう」でありえないくらいドブった原因は不明。今日もいたるところで赤が出て大変だった。
また今日の主目的であった、8キャラクター合計108Lv.を要求するクエストをクリアした。今週木曜日までだったので何とか間に合ったと一安心。
理論値とかクエストとか pic.twitter.com/dHco4p8lT1
— こたつがめ (@kotatsugame_t) 2024年7月14日
そのあとは14+をプレイしていた。一発目だけ上手くて後はボロボロ、ということが何度かあった。そんな中でもAiolosはSSS+まで伸ばせて良かった。自分でやっていてもなぜ押せているのかわからない箇所だらけなので、まずAJは無理だし、次ゲーセンに来た時にはもうできなくなっているのではないか。
14+ pic.twitter.com/FC5Cn2Ou03
— こたつがめ (@kotatsugame_t) 2024年7月14日
帰りはホスフィンに教えてもらった新しくできたラーメン屋で食事した。普通サイズが麺2玉で、洗面器みたいな器で出てきてひっくり返りそうになった。周りの客はみな少なめの麺1玉を頼んでおり、じゃあそれを普通サイズにしようぜと言いたくなる。満腹中枢が反応する前に慌てて啜りこんだ。
ドンキに寄って午前1時過ぎ帰宅。眠気から床で寝落ちしたらしい。気づいたら午前3時だった。
シャワーを浴びて昨日の数値計算の続き。メールの返信に書かれていたことを試していた。実行が全然終わらないのでSageMathの中身を確認しに行ったが、少し辿るとSingularに飛ばされてよくわからなくなった。しかし終わらないのは確か。無理でした、とメールを送った。
日記を書いて午前11時過ぎに就寝。
今週はほとんど予定がなく、平日はずっとラノベを読んでいた。週末は久しぶりになろうに熱中した。460話あるが文字数としては100万文字なのですぐ終わるだろうと手を付けた。実際もう3分の2まで来ている。