以下の内容はhttps://kotatsugame.hatenablog.com/entry/2026/01/19/235434より取得しました。


週記(2026/01/12-2026/01/18)

01/12(月)

午後3時起床。今日は祝日。夜中まで先週の週記を書いて、投稿した。

午後11時半からCF #1072 div.3に参加。

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

Aはn\le 3だけ特殊。Bはm\bmod 2k分シミュレートした。Cは\lfloor n/2^c\rfloorまたは\lceil n/2^c\rceilしか作れない。Dは二進法における桁数とpopcountから最小の操作回数が決まる。両方固定して数え上げた。

Eは列を隣接する二項の差がk未満となる位置で分割し、それぞれに含まれる区間を数える。kの降順に見ると分割がどんどんマージされていくので差分更新は簡単。Fは木dp。Gはdを大きくするとprefixの最小値が小さくなるので、一致する箇所は高々一か所。単調性から二分探索することでチェックすべき箇所を一つ求めることができる。

37分で全完して9位。div.3にしては簡単な気がする。

www.youtube.com

少し週記に追記して、午前3時就寝。

01/13(火)

午前9時起床。午前中はAmazonで買い物したりMHC Tシャツを注文したりしていた。

元旦に投稿した「読書記録」と「買った本の記録」の編集モードが、普段使っているMarkdownではなく見たままモードになっていたことに気づいた。タブレット端末のアプリから投稿したので、デフォルト設定のままだったらしい。途中で変更することができないようだったので一度記事を削除して再投稿した。投稿日時やURLを手動で過去のものに合わせることで、見た目は完全に同一にできたはず。

昼過ぎに外出。昼食はやよい軒で最近発売されたもつ鍋定食を食べた。ちゃんぽん麺が多すぎて微妙。

それからゲーセンに移動してしこたま遊んだ。まず30クレ、ミスドで一時間休憩してさらに閉店まで10クレ、合計で40クレプレイした。主に新曲を詰めていた。今日はかなり指が動く日だったようで、良いスコアがたくさん出せた。

Lv.15はSSS+が一つ、SSSが二つ。「The Music of Violent Eating」は初プレイからSSSが出ていた。この難易度帯にしては簡単という噂を聞いていたので、得意というより苦手ではなかったという認識になる。「AiAe」は鍵盤を押せる今日みたいな日にスコアを伸ばしておきたいが、現状98小節以降が全然認識できていないので粘着すると一気に崩れそう。

ビッグブリッヂの死闘 -シアトリズム FFAC Arrange- from FFV」は鍵盤を押せるようになる未来が見えない。二回目のプレイがたまたまうまくいったので、残りを死ぬ気で耐えて何とかSSSをひねり出した。もう出ないと思う。

Lv.14+ではAJを四つ。「当たり前田の小野美苗」はかなり難しかった。81小節は指が間に合わなかったので擦り、116小節の右手は空打ちトリルをしてなんとか出せた。イロドリミドリMASの全AJをギリギリで維持。「Oracle」と「〚盲従〛 ~Fantasia Sonata Flower」はどちらも初プレイでAJが出た。我ながら上手いのではないか。

さらに先週追加された東方Projectジャンルの新曲も、Lv.15の一つを除いて理論値で埋めることができた。譜面動画を見た段階では「アマノジャクリバース feat. ytr」のフリックがヤバいと思っていたが、いざプレイしてみると全然巻き込まなかった。すぐ揃ったので崩れるほどプレイしなかったのも大きい。BPMの遅い「メイドノココロハアヤツリドール」で一番苦労した気がする。

また、かなり昔からこっそり目標としていた「1クレ全部新規理論値」についに成功した。狙って出せるようなものではないので、二曲目まで理論値だった時だけ意識する感じ。「ネ!コ!」はもともと好きな曲で譜面の記憶もうっすら残っていたし、最近でもULTを何度かプレイしていたので、このような状況で選ぶには最適の譜面だったと思う。それでもめちゃくちゃ緊張した。

立ち食いそばを食べてドンキに寄り、帰宅。Twitterと動画で時間を浪費し午前6時就寝。

01/14(水)

昼前に起きた。この日はハーメルンを読んだり読書をしたりしていた。

池袋ウエストゲートパーク」19巻を読了。人情に訴えるストーリーと爽快なトラブルシューティングは相変わらず非常に面白かったが、振り返ってみると少し不満もある。もともとGボーイズを動かすには依頼料を工面する必要があり、タカシを引っ張り出すのはさらに難しかったはずなのに、その特別さが今はもうほとんどない。とはいえタカシが登場するだけで面白さが一段と増して感じられることも確か。

ハーメルンでは「神武天皇の幼馴染」を読んだ。現代知識を持ったまま過去に転生して歴史を大きく変える話がそもそも大好きというのもあるが、この作品では太古の昔に転生しつつも、歴史の過程をばっさりカットしてたった六話で話をまとめている点が非常に良かった。濃密で面白い。

syosetu.org

午前6時過ぎ就寝。

01/15(木)

またしても昼前に起きた。今日はラノベを読んでいた。

「デルタとガンマの理学部ノート」シリーズ3巻「とっておきの論理を、君と。」を読了。非常に面白かった。理学部オリエンテーリングでの知的な競争が描かれ、濃密な内容ながら丁寧に張られた伏線のおかげでぐいぐい読み進めていけた。2巻での黒い陰謀が引き続き顔を出し、手に汗握るような展開も楽しめる。また、主人公たちの通う高校にスカウトされて入学してくる「県外組」も本格的に登場。彼らの天才性も印象に残った。

続いて「最強魔法師の隠遁計画」20巻を読了。アルスに犯罪の濡れ衣が着せられる辛い展開だった。名誉が回復されるまでどのくらいかかりそうかWeb版で確認しようとしたが、ストーリーの順番が前後していてどこと対応しているのかいまいちわからなかった。このあたりは愉快な話でもないので読み返したことがなく、記憶が一切残っていない。新鮮な気持ちで楽しめる、とも言える。

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

01/16(金)

午前9時起床。大学生協に行こうと思っていたら共通テストの準備のため休みになっていた。

ハーメルンで「メジロマックイーンになりまして。」を読んだ。面白かった。突然創作キャラの姿かたちになってしまったことによる苦労も少しは描かれるが、基本はご都合主義で押し通していく。そう宣言してくれるならこちらもいらない悩みを抱える必要がなくなり、楽しく読めた。

syosetu.org

ひと眠りして起きたら夕方になっていた。シャワーを浴びて外出。

まず大戸屋で食事した。「冬のごちそう」フェアから「チキンと6種の野菜の和ポトフ~麦味噌ソース添え~」を選択。大根に火が十分通っておらず硬かった。また、前回食べたもう片方のメニューと比較して肉の量が少なかったため残念。野菜メインのメニューなので理解はするが、空腹で白飯をガツガツ食べたいときには適さなかった。

冬季限定「炭火焼きチキンのマスタードクリームソース」を注文。

週記(2025/12/08-2025/12/14) - kotatsugameの日記

今日外に出た主目的は外食だったが、食べてすぐ帰宅するのも味気ない。ゲーセンもほどほどにしておくつもりだったので、しばらくカフェで読書することにした。サンマルクカフェに閉店の午後10時まで滞在。抹茶ラテが美味しかった。

ゲーセンで6クレだけ遊び、ラーメンを食べ、ドンキに寄って帰宅。朝までPuzzle Square JPで「へやわけ」を解いていた。

ラノベの新刊チェックをして16冊注文し、午後1時半就寝。今週末のUniversal Cupは昨年11月に開催されたSTPC2025セットだったので不参加。

01/17(土)

午後9時前起床。ABC441に参加した。

AtCoder Beginner Contest 441 (Promotion of Engineer Guild Fes) - AtCoder

A、Bはよい。Cは難しかったが、整理するとAが小さいものに日本酒が入っている状態でAが大きいほうから飲んでいくケースのみ考えることになった。Dは全探索、Eは典型、FはナップザックDPを左右から行って毎回うまくマージする。

Gは各点に重みがある状態での重み付き加算と総和取得が遅延セグ木に乗るのが有名。そこで皿の裏表を0と1で表現することを考えたが、結局最大値取得ができないので、表と裏それぞれで値を管理することになって、重み付き加算は影も形もなかった。

32分で全完して四位。

www.youtube.com

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

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

AはAGC076Bを彷彿とさせる操作。解法も似た感じで、正しくない位置にある文字をすべて選べば一手でソートできる。最初からソートされていた場合は後手勝ち。

B1は最初に出現する閉じ括弧と最後に出現する開き括弧を削除して実際に判定した。B2に移った段階でB1の解法をもう少し整理し、削除した二文字の間に開き括弧が存在することが条件だと気づいたので、tの長さと正しい括弧列かを判定するための\pm 1の累積和を持ってO(n^2)状態のdpができた。

Cは初めてq_i\ne p_iとなるiq_i\gt p_iとし、その後ろを昇順ソートするのが良い。辞書順で小さくなるうえ\operatorname{rev}(q)\gt\operatorname{rev}(p)となりやすい。q_iとしてはp_iより大きく、またp_iより後ろにある値の中で最小のものを持ってくる。

iはできるだけ大きくするべきなので、どのようなsuffixを選べば条件を達成できるか考えることになる。単調減少列と単調増加列がこの順番で繋がっていた場合、どのように並べ替えても条件を達成できないことがわかる。一方その直前にもう一つ要素があれば、先に述べた構成をそのまま使えることが確かめられる。

そのような極小のsuffixは、後ろから隣接項を比較し続けることでn回以下のクエリで求められる。さらにソートが必要になるが、すでに単調減少列と単調増加列と先頭の要素の三つに分割できているので、マージソートと同様にして2n回以下のクエリで並べなおすことができる。

DはまずPrufer vertexが「頂点nと頂点n-1を結ぶパスにおいて頂点nに隣接する頂点」だとわかる。与えられた森ですでに二つの頂点が連結になっている場合はPrufer vertexが確定しているので、そうでないケースについて考える。

サンプルを見てエスパーすると、もともと頂点nに隣接している頂点vがPrufer vertexとなる場合の数は、頂点nを含む連結成分のサイズをs、そのうち頂点nを根として頂点vの部分木にあるものをc個とすると、全体のc/sであることがわかる。

残った全体の1/sをさらに分割する。これは頂点nとPrufer vertex候補の頂点を結ぶ辺を張った状態で上の計算を再度行えばよい。なんだか不思議な感じだが、確かに和は正しかったし、登場する場合の数もすべて整数になってくれた。

Eはほとんどエスパー。小さな値から順に確定させることを考えると、置ける位置がほとんどないことに気づく。まず一つ飛ばしで配置し、端で折り返して穴を埋めるような形になるらしい。これが左右独立に行われるので、1からnへの二本の単調増加列で表現できそう。

ちゃんと述べると、奇数インデックスを昇順に並べたあと偶数インデックスを降順に並べた列を円環と見なしたとき、1からnへ向かう二つの円弧がそれぞれ単調増加列になる。この特徴付けを信じれば数え上げは簡単。ひとまずサンプルが合ったので提出したら、通った。残り五分だった。

Eまで解いて15位。自分の感覚では大成功なのだが、今のレートが高すぎるせいでなんと失敗扱いになってしまうようだ。3327→3307(-20)。

www.youtube.com

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

01/18(日)

午後2時過ぎ起床。今日はAtCoderのコンテストがない。夜中まで読書していたが、午後9時近くになるとソワソワして落ち着かなかった。いったん午後9時を回ると、確かにコンテストがないことが実感されて落ち着いた。

「虚構推理 忍法虚構推理」を読了。面白かった。相変わらず多重解決で混乱してしまう。新しい推理について読んでいるうちに古い推理を忘れてしまって、どこが変わったのか把握できないのが困る。ここがわからないとちゃんと楽しめた気はしない。前半に置かれていた短編二つはシンプルな仕立てだったのでちゃんと理解できたはず。

午後11時半からCF #1074 div.4に出た。

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

Aはギャグすぎて嫌い。Bは一瞬全通り試しそうになったが、冷静になるとn\times\max(a)。Cは最も長く続く連番を探す。Dは最後にリセットしたタイミングを管理し、要素にアクセスするタイミングで反映した。Eは初期位置からいつどれだけ移動するか求めておき、両隣のトゲに当たるタイミングを取得する。

Fはn回の対戦の勝敗が分かればよい。あらかじめ必要になるXORをすべて計算しておいて、差分だけ反映した。Gは(i,j)ごとに計算する。列a_iのMEXは元のMEXのままか、a_{i,j}となる。移動させた先の列については、元のMEXがa_{i,j}と一致する場合だけ値が変わるが、これは前計算しておくことができる。

Hは大変。列b_1,\dots,b_{i-1},a,b_i,\dots,b_{n-1}においてaが最後まで残るケースを考えると、j\ge ib_j\gt a+(b_1+\dots+b_{j-1})となるものがk個未満か、k個ちょうどでa\gt b_1+\dots+b_{i-1}である必要がある。あらかじめb_j-(b_1+\dots+b_{j-1})\gt aとなるjを列挙しておけば可能なiを数えることはできそう。

今回の問題では、列b_1,\dots,b_{n-1}は元の列から一要素除いた形で表現されるので、その分をうまく補正しなければならない。まずjの列挙については、実はO(\log\max a)個しかないので何とかなる。区間MAXの取れるセグ木で二分探索した。残りのパートはひたすら頑張るしかない。サンプルが強くて助かった。

1時間で全完して4位。月曜日のdiv.3よりよっぽど難しかった。

www.youtube.com

ラノベを読んで午前5時就寝。




以上の内容はhttps://kotatsugame.hatenablog.com/entry/2026/01/19/235434より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14