春アニメ第8話

最近ダメだったぷよぷよの調子がやっと戻った。プレイ時間が減ってたからそりゃ調子も崩れるよ。アニメはわりと面白かったね。

このヒーラー、めんどくさい #7

「結果次第だよ?」草。「走れるヤツが多くて」ほんの小さな尖り方のバランスがいい。「戦士?」の言い方上手いなあ。光のヒーラーと闇のネクロマンサーの色の対比が見事で、これによってその後の二人のシーンにくっきり輪郭が付く。OPもEDも、自然にそこにある。本編の完成度は最近いまいち。

かぐや様は告らせたい 3期

今回シャフトが作ってんの?ぜってえ嘘だよからの流れ草。早坂にも明示的には好きと言ってなかったマジ?年下組の伊井野と石上のディレイド驚愕いい配置だ。

まちカドまぞく 2丁目 #7

全体を通して内容が合わない。アニメとしてのクオリティは高い気がする。最後フル変身という概念が生まれていたのよかった。

八十亀ちゃんかんさつにっき 4さつめ #7

おお、久しぶりにかつてのノリが帰ってきた。

盾の勇者の成り上がり Season 2 #7

「牢屋と島をつなぐ扉と似てるでしょ」設定がよくわからないけど、まあ話の意味はわかるか。確かに日本人っぽい見た目してる。

本好きの下剋上 #33

最近そこそこ面白い。

かぎなど #19

元ネタ知らないのかなり痛いんだよな。

ARC141

2完。ARCのわりに緊張感なくて脳内BGMは直前にやった「心予報」だった。あんまり期待もしてなかったからABをつまらないとも感じなかったな。黄コーダーとしてARCの土俵に乗れないつまらなさに覆われている。

A - Periodic Number

最大値を与える数がmを2回以上繰り返したものとして、mの桁数と何回繰り返すかを全探索。答えがNと同じ桁数にならないときが面倒だと思っていたが、サンプルが合わなくて気づいたけどそもそもNより桁数が1少ない99999みたいのが自明が下界になっている。つまりNと同じ桁数だけ考えればいい。mの桁数としてはNの約数だけ考えればいい。桁数や繰り返し回数が確定しているので、100010001000みたいのを生成してN以下ならNを100010001で割って掛ければいい(桁数が違うとここであふれることがありサンプルが合わなかった)。おおまかな方針はすぐ立つが、詰めるのがかなり難しい。

B - Increasing Prefix XOR

Bが狭義単調増加ということは、Aで上位から見て最初に立っているビット位置はBで0じゃないといけない。Aも狭義単調増加なので、結局Bの(2進法での)桁数もAの桁数も狭義単調増加。NがMの桁数より大きかったら答えは0。そうでないとき3乗(高速化もできそうだけど60だから3乗でいい)のDPができる。Aの最上位以外のビットはどうでもよくて、桁数がMと同じときだけM以下だけ数える。特に難しくないけど慣れないDPは時間がかかる。

C - Bracket and Permutation

Sが与えられたときに辞書順最小を求めるのは簡単で(実装は時間かかったけど)、閉じ括弧が多くならない範囲で貪欲に取っていけばいい。順列を012345から変化させる方法は、開き括弧しか選べない状況で開き括弧を後のほうに置くしかない。0-indexedで偶数番目に注目し、それは024以上でないといけなくて、より大きかったときはその部分のSは決まる。偶数番目も奇数番目も単調増加である必要はもちろんある。で、これを前後から組み合わせる。無理では。ただ、制限がない場所は"()"で埋めていい気もする。PとQの主張をぶつけて空いた場所を埋める?というか上書きして最後にPとQが生成されるか確認すればいいか?ということで時間もないしとりあえず書いてみる。コンテスト中にギリギリ間に合わなかったが提出してWA。上書きというか全部書き込んでたからQだけやってたな(Pを使わず生成してた)。1時間あったので時間が足りないという感じでもなく、また、その1時間暇にはならずに済んだ。こういうの通せないんだよなあ。そこまで非現実的な難しさではないと思うんだけど、本当に力不足。

ABC253

5完。Dまでめちゃくちゃ調子よかったのに、EのDPでつまづいて、Fで破壊された。

A - Median?

ソートして中央値を求めるが、bを保存しておく必要があるのをうっかりした。今考えると解説みたいな方法も思いつくけど、思いついてから正しいと確信するまでの時間がかかりそうなので、やはり本番で採用した方針がよい。

B - Distance Between Tokens

1個目の位置を記録しておいて、2個目を見つけたら計算して出力。

C - Max - Min Query

簡単だけど、実装しながら「これC!?」ってなってた。大量に削除するからmultisetはだめでmapで個数を管理する(と思ってたけど今考えたら全体でO(Q)個しか削除しないからmultisetでよかったよなんで気づかないんだ)。削除してxが0個になるときはx自体をeraseする必要があることに注意する。解説を見ると、end()から一つ戻る代わりにrbegin()でいいんだね。

D - FizzBuzz Sum Hard

包除。N以下の最大のAの倍数をAで割ったものはN/A(切り捨て)で求められる。N以下のAの倍数をAで割ったものの総和を求めてAを掛ければいい。A=Bのときも大丈夫(これが感覚でわからなかった)。

E - Distance Sequence

難しそうだけどDPすればいい。Aをi番目まで決めて最後がjのときの通り数でDP。i番目より後へはA_iしか影響しないので、そこでまとめて計算することができる(これがDP)。愚直にやると間に合わないが、累積和を使えばできる。が、好みではないので逐次計算していく。A_iの範囲は0以上M未満としても答えは同じなのでそうする。まずK以上M未満の総和を求めておき、dp[j]を更新したらj+Kを引いてj-Kを足す(範囲外であれば操作しない)、とすると合わない。かなりややこしいが、更新後に足すならj+1-Kの位置だ(今回のj-Kは既に入っている)。そこでj-Kを足す操作を更新前に持ってきたが、これを提出してWA。K=0のときのケアを、更新後に足す場合しかしてなかった(実装を変えるときにケアしたはずのところが抜けるのよくある)(このくらいのDPはできるが、やはり苦手ではあるので負荷が高く余裕がなくなりミスが増える)。原因がわかったので提出してACを取っておいたが、どう書くのが自然だったかわからないままだった。今思うと、K=0自体が微妙な設定なのでそんなもんかなと。

F - Operations on a Matrix

解けそうだなとはわりとすぐ思うけど、脳破壊系の実装。クエリ3から見てi行目に対する最後のクエリ2のxと時刻を保存しておく(これは長さNのvectorにxと時刻を上書きしていったものから取得できる)。クエリ1も保存しておく。クエリ3は、コピーして片方は対応するクエリ2の時刻でソートしておく(もう片方は当然クエリ3が来た時刻でソートされている)。サイズMのBITで区間加算点取得をする。各時刻について順番に処理していく(ここが最後まで見えなかったやり方で、最初はクエリ1だけで回していた)。クエリ2の時刻でソートしたクエリ3では、BITで0からjまでの総和が点jの値なので保存しておく(保存場所は「そのクエリ3の時刻」とすればいい)。クエリ3は、その保存した値と今の値の差をベースとなるクエリ2のxに足して出力。クエリ1はBITでLとRにxを足して引いていもす法みたいにする。

これは本当にきつかった。この方針がぼんやりとしか見えてない状態で答えを彫り出さないといけない。1時間あったのに間に合わず、7分オーバー。ちゃんと解けてはいると思うけど、どのくらい無駄な処理を書いたのかも全然わかってない。

春アニメ第7話

まぞく1回休み。

このヒーラー、めんどくさい #6

見てて終始ニヤニヤしてた気がする。今回は、なんかバラバラだった(前回のような完成度がない)。悪い意味で微妙。それでもなぜか楽しめてはいるけど。佐倉綾音とその妹がかわいい。

八十亀ちゃんかんさつにっき 4さつめ #6

最後ヘアピンつけてもらえてよかったね。

本好きの下剋上 #32

彩度の高い色がポンポン出てきてやべー世界だ。

盾の勇者の成り上がり Season 2 #6

ウザいしゃべり方をあの量こなしてるのすごいな。

かぎなど #18

バンド対決がよかった。