ABC252

7完。Eまで通してFGを読んで順位表を見たときは予想よりだいぶ低い順位だった。FもわからんしGは難しそうだし、苦手セットだと思った。が、順位表を見てFの解法を思いつき未証明で通し、Gは区間DPがわりとすぐ見えて、いい順位に。これで黄色復帰。青に落ちて(落ちたこと自体はたまたまだと思うけど)少しして初めてスマホを持ったりして、なかなか調子が戻るタイミングがなかったけど、ようやく。

A - ASCII code

charにキャストして出力するだけ。やや怖いので何か間違えてないか確認したが、それ込みでも33秒。

B - Takahashi's Failure

やや複雑だが、それでもB問題レベルの簡単さ。最大値を求めて、それが嫌いなものの中にあるかチェック。問題文の意味がとりづらかった。

C - Slot Strategy

リールが知らない言葉だったけどまあわかる。同じ位置に目的の数字がある複数のリールを同時に止めることはできない。ということでシミュレーションでいいんだが計算量がパッとわからない。なのでNが大きくても使える解法を採用。どの数字に合わせるかを固定し、その数字がj個目にあるのが何個あるかをカウント。その最大値の回数だけ周回する必要がある。ただし、最後の周は最後に現れる最大値の場所まででいい。すっきり解けてはいるのだが、階層がかなり深く抽象的になっていて自信がなかった。

D - Distinct Trio

難しい。包除とそれ以外で迷うが、どちらも見えない。しばらくして、単に3個とも同じ数になる選び方と、2個が同じでもう1個がそれとは違う選び方を引くことができると気づいた。2個が同じとき、仲間外れの1個の位置関係を固定するとわからなかったが、固定しなければ単に自分と違う数の個数でいい。10^6以下の数の3乗なので気にせず計算して大丈夫。ループを2*10^5回回す。

E - Road Reduction

こんなの解けるわけがない。プリム法っぽさは感じるので、現在の(頂点1を含む)木につながる辺であって頂点1からの現在の木にその辺を加えたものでの距離が最短のものを貪欲に選んでいく。手でいくつかの例を試し反例が見つからなかったのでそれで実装して提出。未証明どころか何の言い分もなくそれっぽく解法を錬成しただけ。実装にもけっこう時間がかかった。運良く(?)AC。

なんかこれ、ダイクストラ法っていうらしいです。解説読んだけど、いや確かにダイクストラ法ってそういうふうにやるよな。いやダイクストラ法なのかこの問題で問われていたのは。全然気づかなかった。そうだったのか。各頂点への最短経路を重ねて木にすることができるのか。言われてみればそうなりそうだ。あと、自明な上界が達成できるという問題でもあるんだな。これも気づかない。

F - Bread

二分木を描いて、葉以外のサイズを最小化したい。わからない。ここでGも読んでから順位表を見る。Eを通したのに順位が悪いのにも驚いたが、Fもけっこう解かれている。それを見て、逆から考えることを思いつく。バラバラのパンを全部つなげる最小コスト。余るパンが1つでいいかもわからなかったが、逆から考えれば1つでよさそうに思える。つなぐときは、できるだけ合計が小さくなるように。最終的には同じだから、最初のほうを小さいの同士、やはり二分木の平衡みたいになる。priority_queueで小さい2個を合体させていく。パンが余らない場合の処理が間違っていて、サンプルに助けられた。未証明AC。

G - Pre-Order

手でいくつか試して、順列に意味がある(Nが同じなら同じ答えになるとかではない)ことを確認。先が見えない問題だけど、DPを考えたときに制約がまさに区間DPで、行きがけ順は区間だ。何かの子というか、部分木から根を除いた部分とO(N^2)個の区間を対応させ何通りあるか求める。迷ったけど、普通の区間DPと同様に幅が小さいものから計算していく。幅が1以下は1通り。区間のうち、最初の1個は最初の子になることが確定。それ以外を、最初の1個の子孫とそれ以外(最初の1個の兄弟)に分けるのを全通り試す。兄弟は(存在すれば)最初のより大きい番号でないといけない。全体で時間計算量O(N^3)。思いがけず短時間でAC。

プロセカ その4

前回。少し飽きてきたかな。1日平均2時間か3時間はやってるみたいだけど。実力が伸びるか新曲かくらいしか楽しみがないもんな。

使っている編成は、スコア・回復・イベント・称号の4つ。スコアはベテランルームで下埋めと素材稼ぎをするとき用(イベント初日くらいしか使ってない)(ソロで使うとスコアランクA安定、極端に短い曲ならS)。回復は、回復量300以上のメンバーでイベントボーナスが多いものを編成しLv.27以上をやるときに使う。イベント編成はメインで使う(スコアがメインでないのはイベント報酬のが魅力的でキャラも色々使えるため)ので、イベントボーナスをあまり減らさない範囲で回復も入れ(Lv.26クリア安定には必要)、スコアランクBが安定するように強化する(Aはほぼ不可能)。称号というのは「ボーイズマスター」とかを得るための編成で、ライブボーナスがなくなってから使う。

Lv.25のMASTER解放はけっこう進んだけど、おしいところまで行って解放できてないものがいくつかある。「ブリキノダンス」はおしいところまで行かない。「Hello,world!」は難しすぎるので別枠とし、Lv.25として扱っていない(Lv.26の「ポジティブダンスタイム」も難しくて26扱いしていない)。このくらいになると、MASTER解放してもEXPERTのフルコンは全然できる気がしない(どころか回復なしではクリアも安定しなかったり)。

できない曲をいつまでやっても飽きるので、他の曲をやって上手くなることでMASTER解放を目指す。今は、MASTERのLv.26をイベント編成で、あるいはLv.27を回復編成でやることが多い。EXPERTのLv.24をやって苦手パターンを認識するとかもやる。タップとスライドの同時押しで、スライドの終端にタップがないやつが苦手だ。スライド終端のフリックはたまに抜けて、最近はフリックする瞬間を見ていることも多いんだけど、見てないときに抜ける(運が悪いとかではなく必然)。横位置なのか縦位置なのかタイミングなのか、わからない。フリックまみれの前後はミスが増えるが、これは余裕がなくて連鎖的にミスってるだけなので反復練習だけでも大丈夫だと思う。

MASTER譜面は少し慣れてきた。簡単なものであれば抜けがかなり少なくなり、楽しい。ただちょっと難しいのになると指をビクビクさせながら、高速で動く指を俺がコントロールしてタップするみたいなことになり、そういう譜面を静かにプレイできる日が来るといいなあという感じ。できる部分に関しても、MASTERは気合いが必要なのはしんどい。(頑張ればつながる区間であっても)気を抜くと大量に抜ける。

フルコンに関しては、今は結果を求めていない。あまり好きなパートではないし、もっと技術が洗練されてからやったほうが時間がかからない。一方で、「落としてもいいや」と思うノーツがある状態はよくないと思っていて、Lv.26までくらいの譜面であれば全てのノーツを「見る」ように心がけている(見えなかったとか指が動かなかったとか認識したい)(Lv.27になると見えないノーツが多いし、Lv.28は手合い違い)。

昨日、HARD(Lv.18くらいがよさそう)を片手でクリアするというのをやってみてた。回復編成が必要。右手はどうせ左より上手いだろうから、左手を中心にやっている。直接的には(遠い未来に)MASTER譜面で指を2本より多く使うことを見ているが、短期的には左手の技術を鍛えるという目的が大きい。筋力と精度は強く関係しているので筋力と技術の区別は難しいが、左手は筋力や技術で確かに劣っている。そのため、右よりも強く叩くことになる場面も多い(プレイしていて左手の指先(タップで触れる場所)が少し(疲労という感じで)痛むことがある)。高速フリックを力ずくで処理できないことも多い。

少し前から、指がスマホに触れるときの速さが遅くなるように(叩きつけないように)意識はしている。音がしないようにそっとやってもコンボがつながることは多い。ただ精度は落ちるので、ギリギリを狙う。肉体という誰にでもある人それぞれの制約の中でいかに楽しむか。まだ技術がない状態でどう練習するか考える(できるようになってから「ああしておけば早かった」「あれのせいで変な癖が付いた」と言うのを今出す)のが、無茶だけど少しでもマシなものを探してやっていくしかない。

プレイしてズタボロだったらMASTER解放済みとかあるし、序盤が上手くできず何回もやっていたら実はフルコン済みというのもあった。こういうのはむしろいいことだと思っている。かつての自分がフルコンできたなら今後どこかでフルコンできることはあるだろうし、自分の状態が(「できる→できない」と)変化しているのならよりよい領域に至る可能性が見える。

あとタイミング。最初のころは、慣れなくて動作が遅れるので前に出て早めに叩く意識でやっていたが、最近はもう慣れているので早めに押してはいけない。後ろに下がってやるように心がけている。最初に付いた癖はなかなか抜けない。早めに押す意識ももはや邪魔で、ちょうどに押したい。フリックは仕様(動かし始めなのか指が離れたときなのか)がわからないので感覚に頼っている。

あぐらでやっているけど、下半身の支えが重要になりすぎて足が痛くなることがある。動けないから筋肉が疲れるとか痛い形のままになるとか。

指の状態は、左手人差し指の先端が少し疲れているのと、右手首の外側が負荷をかけたくない状態になっているのと。今はそんなに悪くない。右手首をテーブルに着けて左手首を浮かせるというスタイルが一番安定するっぽいが、この左右非対称な癖を矯正すべきか悩ましい。筋力差に起因していそうではある。弱い側が浮いているというのも、(腕でカバーするとかで)仕方ないんだろうけど逆に思えるよね。

難しいと思っている譜面でなぜかつながるコンボ。正気に戻ったら切れるという恐怖。コンボが切れるのは仕方ないとしても、そこで指の位置も自分の精神も乱れる。リズムを戻すのが難しい。

ほか

イベント

ライブボーナスドリンクがけっこうあるので、10万位(スキルアップ用スコアと称号がもらえる)に入れるようにイベント終盤で使うことにした。そのくらいやると、イベントバッジも欲しいものが大体交換できるくらいは得られる。また、それによって毎月のライブミッションもギリ完走できそうだ(まあこれは前半分だけでも主要な報酬がもらえるんだけど、もらえるならもらいたいので)。

にしてもイベント走ってるやべー奴がけっこう多い。練習用スコアとか何に使うのかと思ってたけど、ガチャでイベントキャラを引いてそれを練習用スコアだけでレベルMAXにして使うんだね。自分もスコアランクBになるまで練習用スコア使ったりするし、同じか。

チャレンジライブ

今までに10連ガチャを15回以上やったのに、彰人をただの1回も引いていない。で、彰人のチャレンジライブを解放したら当然ながら2個目の枠が空白(他のキャラだと自動的に入っていた)。その後、イベントバッジで星3彰人(これがまた判定強化という不遇っぷり)を交換したが、やはり2個目の枠は空いたままだった。ちょうどミクの編成数が増えそうだったのでキャラランクを上げて確認してみたが、編成数が増えたときは空白になるのでまあ自然な動作だった。

ユニットEXP

エリア会話のユニットEXPは30っぽい。そのユニットの登場人数が掛け算される。レベル20に到達していないのがビビバスのみとなり、そろそろこういうの調べるのもできなくなる。

スコアランクD

クリア済みでスコアランクが付いていないのは、その楽曲を得る前にみんなでライブでプレイ済みだったもの。ハイスコア0でスコアランクDは、チャレンジライブでクリアしたものっぽい。

モモジャン

いい曲というか、俺の好みの曲がモモジャンに集中していてずっこい。

関係ないけどビバハピが書き下ろし曲だと思い込んでいた。けっこう前の既存曲だった。アイドル新鋭隊と同じ人だからか。にしてもモモジャンっぽすぎる。

これは危うさでもあると思うんだよな。以前ミラぺの2DMVで思ったけど、確かに分類するならワンダショ、でもミラクルペイントはずっと前から知っていて分類されても困るというか。まあ一つの曲に色々な見方があるのはいいことで、逆にプロセカでユニットのイメージが付いてしまった既存曲は原曲を見に行くとかしたほうがよさそう。

羽称号

初の羽称号は「ベテラン」だった(プレイヤーランク100)。

クリア時のボイス

フルコン目指してるときにGOOD1で青柳くんが「努力した結果だ」と言ってきて厳しい。基本的に、クリアが嬉しいものだという設計になっているっぽい。このゲーム、ライフけっこう少ないしな。今はクリアが安定するように回復を積んでプレイすることがほとんどなので、そうなると噛み合わない。

ローリンガール

プロセカでも「そろそろ君も疲れたろうね」のところでプレイヤーが疲れている。

お花見

愛莉のソメイヨシノの話、絶対つまらないと思うんだけど(何回も聞いてるからか)。

ミュージックカード

ミュージックカードの採掘(過去のイベントストーリーをスキップして読む(読んでない))を終えた。まあそこまで時間かからんし、早くやったほうがいいと思って(ストーリーを読むのは少しずつやりたいところではあるけど、一気にやるのは気持ち悪くなるだけなので無理)。現在、未交換の曲は35曲、ミュージックカードの残りは86枚。毎月手に入るミュージックカードは、チャレンジライブとライブミッションとイベントで100枚ちょっと。楽曲追加ペースが尋常じゃなくはやいけど、さすがにどこかで追いつけるやろ。

トリル

なぜか苦手。自分で操作するというより、祈りながら見てる感じ。できるときは、ちゃんと音を聴いていればできるんだよと思うが、できないときは聴いてるだけになる。ダーリンダンスのトリルはなぜかやりやすい(そこまで長くないけど)(単に速さかな)。

フリック

フリック抜けにも2種類あって、フリックしたつもりがした判定になってないのと、フリックする指令を指に出したつもりが指が動いてなかったのがある。後者もそこそこ厄介。「お前はフリックな」と言ってポンとタップして済ませてる。判定はMISS(当たり前)。

春アニメ第6話

まちカドまぞく 2丁目

OP、オレンジ色の胸出した服着たちびミカンさんを初めて見た。さくらさん出てるとは思ったけどあんなはっきり出てたとは。このOPやっぱり未登場キャラの隠し方が上手い。

解決したい問題が多すぎてビジョンが見えないという状態から、いつの間にか揃っているという感覚、時のオカリナを思い出した(時の神殿の扉を開く条件)。

ミカンが、全て終わってから呪いを盛大に出すの、羽生の手が震えるのと似てると思った*1

さくらさんの声は前回わざと見なかったけど、今回は見た。

音楽の使い方が最高だ(色々なBGMや音響)。最後はあの間の取り方が完全にこちら(視聴者)とシンクロしていてすごかった。「依り代人形くれい」っていうのは粘土で作ってクレイってこと?

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

なんか別の意味で突っ込んだ話してくるな(キャラが)(やや苦手)。早坂が最近あざとすぎるんだがもうちょっと抑えてほしい。会長がデートに誘ったあとの上履きの急ブレーキがアニメらしい表現で好き。

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

Aパートの完成度相変わらず。イベリコが上手すぎる。この平坦な展開であんな上手いこと言って飛び出さないの本当に上手い。Bパートは今までにない展開で、ガチで悪そうな魔女とカーラの他人への迷惑行為、どうするのかと思ったが若返りでめちゃくちゃ雑に落とした。

ほんとあの1話からこんなアニメになるとは読めないよなあ。3話で化けた。何が変わったかと言われると難しいが。

本好きの下剋上 #31

けっこう面白かった。

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

実写が多すぎる。

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

聞いただけ。状況がなんもわからんので、登場人物と一緒に考える楽しみがないんよな。

かぎなど #17

いつも通り。

ARC140

3ペナ3完。BCの実装とデバッグつまんなかったな~、ひょっとしてARC中の時間の価値ってそんなに高くないですか?

得るもの(楽しかったとか勉強になったとか)がないのでブログを書くのにも普段感じないしんどさがある。

A - Right String

Tは長さf(T)の文字列をlen(T)/f(T)回繰り返したものでありそう。こういうの証明難しいんだよな。そのくせ大抵正しいから時間をかけすぎるわけにもいかない。何考えたか忘れたな。ああ、3回rotateして一致するなら3文字ずつ区切って全部同じ文字列になることを確認したんだ。これも状況証拠でしかないが、約数にしかならなそうなので小さい順に試す。その場合の最低限必要な変更回数は、区切った文字列の各位置について必要な変更回数がわかりそれでその周期にできるのでそれでOK。位置毎に文字数を数えて一番大きいのに合わせる。計算量はO(N^2)には収まるのでOK。

B - Shorten ARC

どちらでも好きな操作ができると誤読していた。その場合、ARCをACに変換するとそのACの2文字はもう使われることがなさそう(どっちも相手が消えない限り使えない(どちらの操作も文字をいくつか消す操作))なので、Rに変換する操作だけをすることになる。R視点で考えて、隣接するAとCを使っていくしかない(Rは消えないのでRで区切られた区間の文字たちしか使えない)。つまり、Rから左に連続するAと右に連続するCを数えて小さいほう回だけ操作できる。提出してWAが5個。

しばらくして誤読に気づく。2回セットで考えると、その2回で必ず一つのRが使えなくなる(消える)。残り1回のやつを消すのは最適そうだけど、他を多い順にやるか少ない順にやるかけっこう難しい。1とそれ以外で分けて、priority_queueに1より多いのを入れて1の個数も管理する。多い順に使い、消すのは1を優先する。どちらかが0個になったら、1しかなかったら操作回数が1の個数と同じなのは明らか。そうでないとき、1減らして消す(計2回)という操作が残ったRの個数だけできる。提出して今度は13個WA。0をはじいてなかった。

C - ABS Permutation (LIS ver.)

てきとうにスコアが高そうな順列を作ってみる。3 2 4 1 5みたいの。これが自明に実現できるケースはそれでいい。そうでないとき、逆から考えると差が1からN-1まで現れる順列はさっきのやつしかないとわかる。スコアはN-2以下になるが、Xが半端な数だったときに構成できるかというのが問題。これは、1 2 3 4 5のように並べたものから順に数を拾って順列を作ることを考えて、X=2なら1 _ 3 4 5から3 4 1 5と拾っていけば距離が狭義単調増加にちゃんとなっている(毎回、前回の経路を含んでいる)。これで解けたが、実装があまりにも大変。

0-indexedで考える。基本、N/2(切り捨て)の位置から左右左右と取っていくが、Nが偶数でX=N/2-1のときは右左右左とする必要がある。Xを使わないときはXを除いた数列を作り同じような処理をする。それだけだけど、実装はけっこう考えることがある。言葉にするのが面倒だから、実装はこんな感じ。開始位置を、右左右左のときにずらしてなくてWA。まあこの実装になるまでかなり試行錯誤してるので、力不足でしかない。

D - One to One

まず、全部-1のときを考える。これ置換でもないんだよな。連結成分の大きさの期待値とかそういうので色々な方面から攻めてみたがダメ。最初から各連結成分のサイズを決め打つとか。これも同じ個数のどうやって区別するん。それに、何か考えても最初から辺がいくつかあるというので完全に不可能になる。