年末恒例、アニメBEST3

ぷよぷよを始めてからアニメを全然見なくなった。冬アニメ(2018年1月開始アニメ)が空前の良作揃いで、その反動もあったかと思う。4月以降開始のアニメで完走したのはシュタゲのみ。一挙放送では俺修羅と異能バトルを、あと録画しておいた「妹さえ」を全話見た。また、ブレンド・S少女終末旅行は昨年の秋アニメだが、俺が見たのは今年なので今年扱いになっている(俺修羅とかもそうだが、例えば俺修羅OPは当時消化済みなので今年の扱いにはならない)。

作品

  1. 三ツ星カラーズ
  2. 宇宙よりも遠い場所
  3. ブレンド・S

貴重な小学生枠で三ツ星カラーズが1位。僕の表現力不足により他のアニメを引き合いに出すけど、異能バトルの千冬ちゃんは僕の好みどストライクのキャラで、でもそうじゃないクソガキ(雑な表現)3人をメインに据えたアニメなのが三ツ星カラーズの素晴らしいところ。どっちも好きではあるけど、こういうアニメは(おそらく数字が出せないから)あまり作られることがない。べつに希少だから評価が上がるわけではないが、自分がそれに飢えているのでね。正直、アニメ作品としてはよりもいのほうが上だと思っている。しかし、自分はこのアニメが好きだ。EDの絵が、「未確認で進行形」のアイキャッチ絵を思わせる(公式っぽい絵柄という立ち位置が似てる)。

よりもい。僕の好みは5話だけど、どの話もしっかり作り込まれている。南極へ行くというストーリーがありながら、1話完結のスタイルを保っている。とんでもないアニメ。

ブレンド・Sは、1月頭に一気見した。きららキャラットと知って納得感がある。いいアニメだった。

サブタイトル

  1. ゆるキャン△ #1(初回)
  2. 宇宙よりも遠い場所 #5(絶交しに来た)
  3. スロウスタート #7(ぐるぐるのてくび)

ゆるキャン1話、この作品を象徴する回。なでしこと一緒はギリソロキャン扱いだよね(それは12話だろ(1話も会ってたけど))。

こういうヤバい話好き(雑(って書けばいいと思うなよ))。めぐっちゃんの立ち絵が記憶に残る。この話はキマリの妹もかわいいんだよね。

まずサブタイがいい。ぐるぐるのてくび。えーこと先生と、話すその相手に選ばれた花名。

キャラ

  1. 琴ちゃん(三ツ星カラーズ
  2. ミナ(からかい上手の高木さん
  3. 日向夏帆(ブレンド・S

琴葉は踏まれたいっていうかあの電話の相手の男うらやましすぎるでしょ。帽子を押さえて歩くのがかわいい。服がかわいいと嬉しい。外から見てかわいいと思うだけでなく、あのように在りたいという感情もわいてくる。

見るのがつらい高木さんの中にある癒しのコーナー。ミナはククリの声もあってかわいい。あの、ぺしょっとした中学生がほんといい。

夏帆は自分の好きな属性がたくさん詰まってる。髪とスティーレの制服の配色がいい。学校の制服もよい。

  1. からかい上手の高木さん ED5,6 ジュディマリの「自転車」
  2. 少女終末旅行 ED
  3. スロウスタート OP

そのイントロが「自転車」と気づいたときはびっくりした。幸せな時間だった。

少女終末旅行EDは、おさげのちーちゃんがかわいい。本編もいいものだったけど、アニメではなかなかできない表現をEDで補完してくれている。

スロウスタートOPは、ベタだけど「いいね、ねっ、ねっ」のところが好き。毎週楽しみなOP。

声優

  1. 花守ゆみり
  2. 鬼頭明里
  3. (該当なし)

花守ゆみりは、なでしことイビルアイで一気にイメージが変わった。それまでは、あんハピのイメージでイロモノ扱いだった(ひどい)(旋風こよりの声は好きだったけど)。なでしこを聞いたあとだと、イビルアイのクールな声がかわいすぎる。

鬼頭明里は2017年から気になっていた。飯島香奈と日向夏帆。

AGC030

A - Poisonous Cookies

毒入り食べて、解毒剤食べて、と交互に繰り返す。毒状態で終えてもいいことに注意。解毒剤は美味しいものから食べていく。解けそう。10^9なのでさすがにそのままシミュレーションはできないが、まあさすがに解けるはず。最後まで交互に食えるなら、全部食える。美味しいものは全部でB+C個ある。それよりも多いなら、交互に食べて行けるところまで行って、解毒剤が尽きた毒状態で終わる。このときは、毒入りを解毒剤の数+1まで食べられる。それはわかる。解けているっぽい。しかし、境界がわからない。a + b + 1 >= cと書いたけど、あまりにも見慣れない形で、正しいという感情のサポートを得られない。わからないものはしょうがないので、理屈で何度も確認しながら書く。7分弱。時間がかかってしまった。

B - Tree Burning

ターン毎の選択肢は2つ。どの段階においても、行ってない部分(木が残っている)は1つのかたまりになっている。そこまではわかるが、まだ手が広すぎる。今の自分には何もわからないが、いい性質があってもおかしくないなあと思う。小さい例で色々実験する。定番だが、逆から考えてみる。最後の木からスタートして、木を置いていく感じで。最後家に戻るのが面倒そうだがとりあえず放置。その場所に木を置くための条件がややこしくてわからない。ひたすら考え続け、だんだんと様子がわかってくる(かなりぼやけてはいるが)。既に置いた木が間にあってはいけない。つまり、中途半端な場所に木を置いてしまうと、木と木の間に木は置けないのでゴールできなくなる。残った区間の端っこに置くわけだが、2通りある。近いほうへ置くメリットはなさそう?遠くまで行けば遠くまでの距離が1手で稼げるし、近くへ行っても、結局遠くまで行ったときに行きの距離は1手より多いのに同じだし、帰りの距離も短くなる。さて、ということは単に左右へ動き続けるだけでいいのでは?最後の木N通りを試すのが部分点かと思っていたが、4通りくらいに場合分けすれば最後の木は定まってしまうので、これは部分点解法ではない。簡単すぎると訝しむ。ここで迷うけど、コンテストに出る目的は、実力を上げること(あと、楽しむこともあるけど)。間違っている可能性が高いとわかっていても、正しいと思うならそれを提出しよう。

この時点で50分くらい経ってる。赤い人は800取ってるし、青い人は300取ってる。その意味がわからないまま実装に入る。実装はかなり面倒。reverseすればいいのは簡単だが、左右どっちから行くかが難しい。なんとか書いた。こういうとき同じことを2回書いてはいけない。いけないけど、本質的に違いがある場合はそこをしっかり書く必要がある。だから難しい。何とか書く。サンプルが合うところまで行った。見直しをして提出。問題外っぽいWA。ここで300点になるのかとも思ったけど違った。部分点の正体が全然わからない。この時点で残り35分。ようやく体があったまってきた。

確かに、そんな自信のある考察ではないが、他の例を作って試してみても自分の間違いが見つからない。見つかる気配がない。コードにもバグはなさそうだし、これより優れた経路があるとは思えない。いつの間にか残り10分になっている。早すぎる。Aに使った時間は無視できるとして、Bの1問しか考えてないのに一瞬でこの時間になってしまった。方針を変えることも考えたが、10分で実装するのは無理。時間の制約によって、コンテストの最後のほうの行動がつまらなくなるの嫌だなあと思っていた(ここまではけっこういい動きができていたということでもある)。しかし、違う方針を考えることで自分の間違いがわかり今あるコードを修正できる可能性もあるのではないか。そう思って違う方針に行った。どこへ?ノートに描かれた図を見て、区間に重みづけしてみた。間に合わず(間に合っても、別の方針になってなくて間違い)。

コンテスト直前、トイレに行ったりしていて体が冷えていた。Aを解いているときは、心拍数が上がらないなあと思っていた。上がらないものは仕方ないので、ここはノンペナで確実にACする。1完で終わるとわかっていればもう少し急いだが、これは本番のときの行動のほうがいい。Bもなかなか思考がまとまらず、Aに時間がかかったことも含め地力のなさを感じていた。後半になり、時間の経ち方がはやいことに気づく。今日は、大したことではないけど、家の手伝い的なことをしていた。その中で、たくさん会話をして知らぬ間に自分がいつもの自分でなくなっていた。そもそも、自分も含め人間の人間らしい部分はゴミだと思ってるし、そんな中で会話をしたら心は疲弊する。コンテスト前の一日は独りで過ごすべきだったのかもしれない(いつもはそう)(やや雑に書いてます)。まあ結果自体はそんなこと関係なくありえたというか、最近明らかに競プロの練習が減ってるので。ただ、それはわかった上で、今の自分の実力は出し切りたいと思っていた。それができなかったのが反省点。そんなに悔しいという感じではなく、コンテスト中の立ち回りも振り返るとわりと満足できる。挑戦した問題数が少なかったので楽しさが減ってしまうのは残念。「レーティングが低いと次のコンテストが楽しみなる」というのはずっと前から思っていて、それなのに秋ごろの不調時はそう思わなかったのだが、今は次のコンテストが楽しみ。最近はぼんやりとした幸福感があり、何もしなくても耐えられてしまう面があり、心は安らか(あくまでも以前の自分と比べてで、そこまで安らかじゃない)でもその状態を客観的に見て不安だったりはする。

やや長いのでブログで。

家に帰ると包丁を持った男がいた。自分は路上にいて、男は敷地内にいる。ただ、僕の家が狙われたとかではなく、たまたまそこにいたっぽい。周りには数人いる。なんとかなだめすかして捕らえようとしている。包丁を落としたところで拾いにいくのは危険だ!相手のほうが速い!ただ、この男はコントロールされやすいらしく、僕も布を被せる展開に持っていくことができてその上から首を両手で押さえる!これで動けない。その状態でしばらく頑張ると、誰かが読んだ警察(私服だった)が来てくれて引き渡す。何度も捕まって、施設の事情で解放されてを繰り返していたらしい(世界の運輸はライフゲームに依っており、代表的なのはチリだが、ニュージーランドでも)。そっちがちゃんとしてないのかー。でもこの人も再犯を繰り返してるわけだし罪は重そう。とか考えているうちに。

fronさんとの帰り道。fronさんは実際の顔。僕は顔出ししてからも普段の配信では元のメガネ顔で思い浮かんでいた。おそらく最近マイクが変わって公式配信と同じような声になった影響。さて、たまたま一緒になっただけだが、わりと楽しく話をする。周りを柵に囲まれた公園のような場所に来る。このままだとかなり回り道をしないといけないが、こんなところにあったっけという戸が付いている。これで遠回りをせずに済むとそちらへ向かうが、よく見るとこれは公園内に設置されたATMのような設備にアクセスするためのもので、出入りができるようなところではなかった(外からは入れるが、公園内からは行けない)。しかしfronさんは行けるという。人の目線よりは低い程度の透明な柵のようなものがありそこは超えられないことになっていると思うが。その柵は、戸のある側にも回り込んでおり、公園の柵とATMの柵の間にある1m程度の隙間に入り込む。fronさんはもう登ってしまった。身に着けているものを転送する力(というより実体のない装置?)があるらしい。それなら裸になるはずではというと、なんか理屈は忘れたがそうはならないらしい。10mくらいの高さがありそう。自分も家にいるときは大量に着込んでいるのでそれを脱いでいって挑戦する。だが、壁と壁の距離がかなりある。もしかして自分の身長が低いのか?壁はゆるやかにカーブしており上に行くと(のぼるのが)きつくなりそう。そんなとき、僕が脱ぎ捨てたものを盗まれてしまう!置き引きのような感じ。脱いだものというか、かばんの中にはパソコンとお金が入っている。必死で追いかけるが、自分は壁登りで疲れておりスピードが出ない。絶望的な気分になる。コピー機のところに置き忘れたわけだが、犯人を追う(探す)中で、盗まれたことについてコピー機が悪いというような論調も耳にする。「源泉徴収してるらしいぜー」というのを聞いた。コピー代の10円にでかい税金が含まれていて利用者視点だと取り戻すのが面倒とか。被害届を出しても、一部だけでも戻ってくるかどうか。

目が覚めて数秒かけて安堵した。昨夜の連戦で悔しかったのを思い出し、これでは寝ても感情が改善していないと思った。今はまあ普通。

CADDi 2018

C - Product and GCD

素因数分解、いや、10^12だからO(√P)だ。まあ素因数分解だけど、順番に見ていけばいい。ある素数がk個出てきたらk/n個使える。わりとすぐ解けたが、実装を素早くやることができない。まあガツガツ書いていく。N=1のケースを先に処理。AC。

D - Harlequin

見当もつかない。とりあえず解ける範囲を広げていく。全ての色が1個以下なら手番の勝ち。全ての色が2個以下のとき、その中でも1個の色がないときは2個ある色を取るしかないが?1色しか残ってないとき奇数なら手番の勝ち。1,1,1,1,2は手番の勝ち。1,1,1,1,偶数も。んー、1と2だけで構成されてるとき、いやあ複雑。じゃあ2,2のときは?ここで、全部の色が偶数で相手の手番なら相手と同じ取り方ができると気づく。全部偶数を相手に押し付けるには、奇数の色を取ればいい!解法がわかるまでめちゃくちゃ不安だった。運ゲーにしか思えないけど、辿り着く過程や速さで実力は出るよねー。

E - Negative Doubling

負の数と正の数の境目がどこになるか、N+1通りのどれか。O(N^2)でいいなら解けたかな?とりあえず、-2倍ではなく4倍のケースを考えてみる。んー、シミュレーションすると2^200000とかになるのでは。でもシミュレーションできるならそれを累積和として使うことでできそう!ここで、浮動小数点数のstructを作る。正規化の仕方に悩んだが、Aが1<<30未満なので、1<<29のビットが立つまで左シフトして仮数を持てばいい。比較とコンストラクタも書く。負の数はreverseしてコピペ処理(焦る気持ちはわかるが関数にしろよ)。全部負の数にするメリットはない(最後の数は操作をしなくていい)のでループはN回。累積和のどこを見ればいいか複雑でわからず時間を食う。解けそうなのですごいドキドキしててオーバーヒート気味(体調は悪くない)。サンプルが合わず、デバッグしているうちに、勘違いに気づく。A[i]とA[i+1]で後者のほうがうんと大きいとき、それまでの経路によってその大きさのマージンが使えたり使えなかったりする。累積和じゃない。しかも、これ累積和だとしても累積和の累積和みたいなの計算しないとダメじゃん。合わないわけだ。負にならない累積和を考えるが、色々考えるが、心が動かない。端は決まってるので累積和ほど強い性質を持ってなくてもいいんだよなあ。そもそも、浮動小数点数要るかなあ。1足してくだけな気も。でも両方からだし要るかな。セグ木で最小値を見る?わからない。反対から見るといい性質が、わからない。これは時間捌けたっていうんか。思いつけばいける領域な可能性もあるが、心が動かないからどうしようもない。さすがに息を吹きかけただけで倒せる問題じゃないので、心が動いてその示す方向へそれなりに鋭くノミを打ち付ける必要がある。気分転換にFを読んだりして、正方形が対角線上と気づかず意味がわからなかったりした。結局、全く解けないままだ。