/ 最近 .rdf 追記 設定 本棚

log[2022-12-13]



20221213() [AtCoder] ツイッターの検索結果に Swap 解いたーというツイトが流れていて見ると自分は過去に解いているでも問題を見ても自分の提出を見ても解き方がわからないほぼ1年前の当時の日記(20220116)を読んでようやく理解した1年前はものを考えていたし頭も回っていたらしい高くもないピークを越えて現在は劣化中……


20221208() [AtCoder] 精進。CODE FESTIVAL 2016 qual C-DFriction( diff)ACゃないよ部分点だーカルで最大ケースが安定して 50 秒だからッジサーバーが倍速だとして 13 倍の定数倍改善で通ると思う■まずは問題を理解する摩擦が発生するのは列と列のあいだ最小単位2列について考える戦略としては右をどんどん下げていくか左をどんどん下げていくかどこかのレベルからは左右を交互に下げていくことで摩擦を最小にできそうっこを除いては摩擦面が左右にあるけどそれによって一面の都合によって下げたいけど他面の都合で下げたくないというジレンマは生じなさそう全体を通して下げる順番を調整すればどの摩擦面にとってもベトな選択が可能そういう調整が可能なので列を下げるか上げるかには違いがない一貫してさえいれば配列を反転したりしなくていいし頭の中を決まった方向に整理したりしなくていい提出 #37100541 (300/ TLE×13)メモ化 DP提出総数が少ないというのはあるけど、Ruby によるすべての提出を見ても AC がないできるはずだ■累積和の要素数をケチったのとメモを Hash から Array に代えたら 24 秒になったけどこれは2倍の改善でありあと6倍足りないしかも答えが一部合わないし■答えが合ったドテトで 10.X 秒だからやっぱりあと6倍(切り上げ)の改善が必要■メモ配列を無理に1次元化せず2次元配列にしたら 8.2 秒になった■演算子をケチって 7.6 秒になったlambda を普通のメソドにして 6.9AC2 秒……再帰じゃなくてメモ配列を埋める普通の DP にしたらどうかなあと思うけど右を下げる遷移と左を下げる遷移をどんな感じで一列に並べてループにできるか迷う■どうも考察が足りてないみたいこちらの提出 #949122 (PyPy / AC / 989 ms)Ruby に移植してみたら 4.6った>提出 #37243589 (TLE×12)よくわからない遷移そしてすでにミニマムなこの解答を倍以上速くすることは無理だRuby の将来に期待!


20221205() 隻狼(SEKIRO)クリアした! だいたい3年前(20200113)に日記に書いたあと源の宮を探索して桜竜の直前で根気が尽きてやめてしまっていた以前見ていたこれらの動【隻狼-SEKIRO-】やがて玄人になるSEKIRO-隻狼-トロ100&やり込み解説SEKIRO(隻狼 実況 ENDを見返しているうちにまた自分でもやりたくなってきたのだった一度終盤まで行ってるし余裕余裕とイチから始めたんだけどっぱりいっぱい死ぬのんな弾きはおろかジャンプステップダッシュすら覚束なくて最初の雑魚敵に殺されたしだけど鬼庭形部雅孝とか大忍び梟とか義父とか破戒僧とか以前いっぱい死んだボスはさすがに体が覚えていてそんなには死ななかった(でも何度かはミスであっさり死ぬ)今回は侍大将と七本槍と重蔵と孤影衆と蛇の目タイプの敵との戦闘が楽しめるくらいになった(それまでにいっぱい死んだ)戦闘が楽しめるというのはすでに何が来ても(ほぼ)対応できるのであってーに近づいてテーに斬りつけてみて何が返ってくるかなーと成り行きを楽しむことができる状態それでも弾きミスだったり攻撃が被って相打ちになったり対応が難しい攻撃が一部残っていたりで退屈はしないミスから死までが近いんだラスボスの弦一郎と一心様にも鍛えられた前回も今回も天守での弦一郎戦は身体力と回復瓢箪に物を言わせて押し切ってきたので一心戦の前座として出てくる最終戦で初めて動きを見極める必要に迫られたうまくいくときはーダメージもあったけど2時間以上やっていて勝率は5割を超えなかったお前前座じゃなかったのかよ一心様1段階目はわりとハメパターンに持ち込める攻撃を中断して律儀に弾いてくれるからだと思う居合いに付き合う必要はない一文字は狙い目2段階目は刀と銃と槍の連撃をテーに弾きながら見切りで体幹ダメージを稼ぐ感じ(ャキチャキ)ただし突きは連撃の最後なのでそれまでに倒れてたら見切れないよそういうケースがいっぱいあったんだよため攻撃に付き合わないのと一文字が狙い目なのは同じ3段階目は2段階目とほとんど同じ追加された雷攻撃がこちらにとってはボーナスなんだけどあまり使ってこないのと横薙ぎの方は当ててくれないから返せないしでそんなにうまみはなかった3段階目までたどりついたのは全部で3回くらい数少ないチスなのでおくるみ地蔵とおはぎまで使って倒した3年前「脳筋なので弾き一辺倒で押し切りたいと書いた弦一郎も一心も体幹がたまりやすいボスで体力を削ることを意識する必要がなかった自分は弾きや防御から攻撃に転じるときに暴発しやすい流派技は常に外していたし最後は義手忍具も外していた(鐘鬼は外さなかった)弾き(L1)と攻撃(R1)だけで戦える非常に満足度の高いラスボス戦だった一心様の剣技って葦名の侍に受け継がれてるんだよね予備動作が小さくて予測しづらいすくい上げる技は武者侍りの侍も使う(でも一心様の方が力みがなくて振りがコンパトな気がする完成度)一文字や十文字は隻狼自身が修得しているだから初めて戦うけど全く知らない動きではない胸熱だしフェアだと思う。ラスボス戦 (432 MiB)2周目の梟 (259 MiB)2周目は3回目で倒せた■2周目の弦一郎・一心は1日1時間として45日かかったまだ死に足りないらしい■2周目はねなぜかお米ちゃんがお米を補充してくれなくてお米もお米から作るおはぎも手に入れられなかった最初のお米を菩薩谷のババアにあげてしまってそれっきりなんでなん細雪(3個まで一度に持てるお米の上位版)を持ってるせいではないと思う2周目だから傀儡の術を最初から持っていて仙峯寺のフラグ立てが狂った? 小太郎に死体漁りをさせたのが気に入らなかった?■おはぎから連想したんだけどエリザベスの名前ってエリンギからきてるよね全然気付かなかったあの姿を見てエリンギだと思わなかったしエリンギだと指摘するコメトを見てもエリザベスと関連付けられなかった■心中の弦一郎にはまだ勝ててないんだけど心中の一心には2回目の連戦で勝てたしずくも地蔵もお米もおはぎもなしで瓢箪だけで2周目のラスボス戦で十分に死んでいたってことかな一心様弱くなった説もあるな自分が認知している変化は3つで1つは突き一辺倒だった危険攻撃に下段を混ぜてきたこと2つ目は不死斬りを使った攻撃の追加3つ目は共通の下段攻撃から始まる連続攻撃で派生が2種類あるものの追加追加された不死斬りも連続攻撃も大技過ぎて必ず対処を要求してくる対処できるし対処するしそのとき攻撃チスが生じている■@2023-01-23 3周目の梟は2回目で3周目の義父は1回目で倒せた。3周目の梟 (249 MiB)なんだかんだ対処できるという気易さがあるせいでこれまでで一番テーなムーブになっている弦一郎戦についてひとつわかったことがあって防御されようが弾かれようが斬り続けていくことで多くの攻撃を潰せるということーパーアーマーの時だけ手を休めて対処する順番のせいもあるけどやっぱり一心様より弦一郎の方に多く殺されている巷で言われているより強いよ弦一郎は一心様の呼吸がだいぶわかってきたのか3周目は2周目より死ななかったこちらの行動次第で対処しにくい下段に派生させないようにできるし逆にこちらが対処しやすい突き攻撃を待つこともできるのでうまく走り回ればまあまあ勝てる何日目かには。3周目の弦一郎・一心 (313 MiB)


20221204() [AtCoder] 精進1。CODE FESTIVAL 2016 qual B-CGr-idian MST( diff)1辺が 10 万のグリドだから辺に沿った処理は通るけど (辺×) の処理は通らないUnionFind のような具体的個別的な処理ではなく何か規則に沿って処理をまとめなければいけないまず造る道路の数は頂点数マイナス1に決まっている最も低コトな道路はそれが縦であれ横であれ造れるだけ造らないという選択肢がないでは2番目3番目のコトの道路は……。提出 #37039797 (AC / 167 Byte / 173 ms)あるコトで造れる行方向(列方向)の道路を1通り造ったら行に対しては列列に対しては行方向の道路を造る際の必要数が1つ減るその繰り返し■精進2-DGreedy customers( diff)まず単純なケースとして列が昇順の場合と降順の場合を考えた降順の場合後ろの人を狙って物を買わせることはできない昇順の場合はできるけどいずれ前の人が邪魔になる先頭の人の所持金を1刻みで残金1まで毟り取れることは決まっているしそうしない理由もない先頭の人から順番に狙い撃ちにするので良さそう1人目の所持金を1まで減らしたとして2人目の所持金が1のときは? 2のときは? 3のときは? 4のときは? 5のときは? 提出 #37040436 (AC / 120 Byte / 89 ms)ーく考えたWA になる例外ケースがありそうな気がしたので先頭の要素だけ特別扱いしたりもした■精進3。CODE FESTIVAL 2016 Final (Parallel)-CInterpretation( diff)以前に見た問題だけどまだ解けていなかったさすがに前回前々回ABC-F がともに UnionFind がらみだったので(でもどちらも時間内には解けなかった)その適応を見逃したりはしない。提出 #37040679 (AC / 327 Byte / 175 ms)人と言語を2列に並べた2部グラフを考える今回は解法から発想したので気付かないままいわば偶然 AC に至ってしまったけど問題文を読解するにあたってコミュニケーションが取れることの条2 人ともが話すことの出来る言語が存在すること2 人ともが X とコミュニケーションを取ることが出来ることの違いをよく意識しなければいけない2つの条件でそれぞれ使われてい「共通言語が存在すること「コミュニケーションが取れることはイコールではない共通言語の存在は再帰関数の停止条件でありコミュニケーションが取れることは共通言語の存在により再帰的に定義されている後になって問題を反芻していたときX 以外の別の人間を介在させてコミュニケーションが取れると判断してはいけない気がしてなんで ACったのか疑問に思って問題を読み直して表現の違いに気がついたのだった■なんだかんだで青 diff が半分くらい埋まってきてるのでそろそろ青入りさせてくれてもいいんですよ


20221203() [AtCoder] 精進今日あったデンソークリエトプログラミングコンテ2022 Winter(AtCoder Beginner Contest 280)-FPay or Receive( diff)というかほぼ答えを見ましたへえFってベルマンフドじゃなくてweighted unionfindってやつ使うのか ルジドルも知らなかったF: 初見ベルマンフドかなと思ったけど制約で間に合わないので却下辺のコトからポテンシャル定義できることに気づいてポテンシャル付きUnionFindを着想無限にできるかは閉路ができた時の相対高さで判断できる 一応自分でも UnionFind の可能性が頭をかすめていたけど構成する辺のコトの和が非ゼロになるサイクルがあるときでもサイクルから伸びた腕の中では inf 以外の答えが定義されるような気がして強連結成分分解が必要だと考えてしまった解ける可能性はなかった提出 #37002677 (AC / 758 Byte / 433 ms)バグなしで完成してびっくりUnionFind と言いながら公開関数は U(nite) 関数と DD 関数の2つF(ind) 関数は内部でしか使わないので非公開DD 関数を difference between distances from a root から命名したんだけどトからの距離(D)とは別に2点間距離をあらためて D(istance) と命名しても良かったなとどうでもいい後悔をしているうまくすれば場合分けが省けるかなと期待して負の無限大を値として使用したけど無限大と無限大の差から NaN を作ってしまうしょうもないバグを踏みそうで結局 if/finite?/infinite? による場合分けが避けられなかったのが残念


20221130() [AtCoder] 精進ABC129-ESum Equals Xor( diff)数週間前には解けなかった問題今日の思いつきはこうある1のビトを選んで倒す。そのとき左にある1のビトを a,b のどちらかに割り振る右にあるビ(0/1 を問わない)a,b のどちらかを選んで立ててもいいしa,b ともに0でもいいこれで重複なく数えられるあとは1のビトを1つも倒さない場合の割り振りを忘れずに。提出 #36886000 (AC / 142 Byte / 133 ms)


20221129() リツイトされていたことで観測した1つのツイトに対する反応集何がひどいのか全く指摘していない点でひどい感想文だなという印象論文で扱っていない因子の話がしたければレター書いたら建設的だがしないんだろうなあシニア研究者の配慮を欠いた発言によりこうやってまたシニア研究者や大学教員に対する評価が下がっていくのである論文に対して意義を述べるのは自由です。ただ科学雑誌に掲載された論文「ひどい論文と表現するのは研究者として如何なものかと思いますね 同じ地球惑星科学に関わる人間として残念で本当に悲しいです。 陸水学を代表する先生「ひどい論文と評価されました 共同研究者全員で3年間必死になって積み上げてきたことをすべて崩れた形にアメリカで私は何を勉強してきたの本当に悲しいで■ひとつを除いて共感できないんだよなあ言いたいこと「悲しいだけ? 感想ひとつで研究成果が崩れちゃうの? 論文にも論文誌にもピンからキリまであるらしいので科学雑誌に掲載されたことをも「ひどくないもんと主張されてもなんだかなあ精々確からしいのは最低限の水準と体裁をそなえ「論文であるというあたりでは? 欠けているのも求めているのも配慮なの? 思慮ではなくて? そこからあなた自身の論文への評価を読み取っても構わない? シニア研究者や大学教員に対する評価への心配は大きなお世話じゃない? 対象を個人からカテゴリに拡大しているのはあなたであって空気の代弁者気取りはいらないよアカデミアを構成しているのも人間なんだなあというのが自分の感想お気持ちだけで戦うの? たぶん2のツイトはゼミ生募集に際してあからさまな女性優遇を隠しもしなかった帝京大学教授に関する報道を踏まえたものだな流れはわかったけど同列に扱うべきかどうかはわからない自分は渦中の論文が本当にひどいものかどうか判断できないから研究者の顔と教育者指導者の顔は別物で両方あっていいと思うから


20221126() [AtCoder] 今日はトヨタシスムズプログラミングコンテ2022(AtCoder Beginner Contest 279)があった。コンテト成績証A-E 5完(1500)の中では最速級だったらしいこれ以上は望むべくもない結果だけどでも1時間以上あるなら F も通そうよ難しい問題ではなかったと思うよ解けなかったけどさ終了後の提出(#36829850)TLEったけどさ■精進FBOX( diff)提出 #36832919 (AC / 443 ms)できてると思ってた経路圧縮ができていなかったのが TLE の原因だった普通の UnionFind にくらべてレイヤーが1枚多い感じでいつもの Find 関数が表層の1つ下層に隠れていた表層のシトカトだけ更新していて隠れていた Find 関数の経路圧縮ができていなかった■宿題だった F が片付いたので気持ち良くふり返りたいDFreefall( diff)サンプル3について自分の AC 提出の出力が 8772053214553.691 な一方出力例が 8772053214538.5976562500 となっている差は 15 とちっとこれ出力は真の値との絶対誤差または相対誤差が 1e-6 以下のとき正解という条件を満たすかどうかの判断がひとつの分かれ目だったらしい自分は何か月か前あたりに絶対誤差と相対誤差を正確に計るとこういう式になるのだけど……(でも必ずしも停止条件を厳密に計る必要はないよね)的な文章を読んでいて大きい値の相対誤差は(絶対値的には)そこそこ大きい値でも許されるんだなあというような今では式もよく覚えてないけど意外性の発見があったことだけは覚えていたので通るような予感があった祈りながら提出して 1 WA でも返ってきたらどうしようもないなと戦々恐々としていたのも本当のところだけど解法は g を探索する整数の二分探索(Range#bsearch)だけど g におけるタイムと g+1 におけるタイムを比較して判定条件にしたので実質的には三分探索だったこんなに簡単素直な解法でいいのかと疑ったけど、20210401p01.03 に書いたように ABC174-ELogsが自分が初めて解いた解を二分探索する問題で二分探索に対する発想の転換があるまでは解けなかったことを思い出すとD 問題でこの素直さはありなのかなあとも思った早々に解析解を提出している人はすごいね分数とかルトとかもはや紙と鉛筆があってもなんとかなる気がしないECheating Amidakuji( diff)題意を理解するのがちっと難しいっくり言うとA 数列の値に従って B 数列の隣接2要素のスワップを繰り返したときB 数列の要素1がどこへ移動するかを追跡するA 数列の要素の1つを無視した場合(スワップを1つ飛ばした場合)の答えを A 数列の長さと同じ数だけ答えてねという問題スワップ対象の BAk+1BAk+1 と紛らわしくなかった? HTMLースを読んで判断したよ結局は同じことをしているのかもしれないけど人によって全然解法の背景にある考え方が違いそうな気がする自分はといえばまず最初に A 数列を順番に使用して B 数列のスワップを最後まで完了させたそして B 数列の初期位置と最終位置の対応を記録したそして B 数列を初期化してからもう一度スワップを繰り返したその際にA 数列のこの要素が関わるスワップを飛ばしたとしたら答えにどう影響するかを考えたスワップする2つの要素がどちらも1ではなかったら1の最終位置は変化しないどちらかが1なら……@2022-12-07 F 問題を振り返ってなかったF 問題はボールから箱を引くデータと箱から箱ラベルを引くデータと箱ラベルから箱を引く3つのデータを用意した最初からこの方針だったのだけどFind 関数の停止条件が明らかではなかったり箱と箱ラベルを混同したりでなかなかサンプルが合わせられなかったったら合ったで TLEったしね箱というのが普段の UnionFind で取り扱う頂点なのだけどこの問題では箱が表に出て来ないールや箱ラベルから間接的に参照されているこういうのは初めてだったし要件に対して用意するのがこの3つのデータで間違いないという確信も持てないまま実装していた自分としては ABC273-ENotebook( diff) を解いたときと同じ頭の部分を使っていたのでありそのときみたいにさささっと8分で解きたかった>20221015でもこっちの問題は骨格を決めた後の実装がちっとややこしかったね


20221125() DFSを非再帰で書くとTLEになる件 再帰になっているものを非再帰に変えると普通は関数呼び出しのオーバーヘドがなくなるので処理は速くなるはずだところがDFSを非再帰に書き換えるとTLEするようになったという心霊現象みたいな話はわりとある添付画像のような記述だ つづく https://t.co/KU7V0jQfni■非再帰で迂闊な DFS を書くと TLE になることがあるという一連のツイ書いてある通りだと思うのだけど結論が投げっぱなしなので補足的なことを書きたい再帰関数で書いた DFS を非再帰版に書き換えるというのは関数呼び出しによってスタック上に暗黙的に確保されていたローカル変数および仮引数のスタック(積み重ね)配列などを使い自分で明示的に保存復元する処理を書いてループを回すということープの1回がだいたい再帰関数の呼び出し1回にあたるTLE になるのは非再帰バージョンに書き換えたときにパラメータが不足していて状態の復元が不十分だから不十分でも WA にはならないかもしれないけど状態と状態のあいだが疎らなために手戻りが発生して TLE になることがある(というのが一連のツイトの内容)このツイで再帰関数を呼び出す瞬間と戻ってくる瞬間をよく意識してほしい隣接頂点リトを走査するループの途中で再帰に突入しープの途中に戻って来ているこれを非再帰で書き直すのだから隣接頂点リトのどこまでが処理済みかという情報まで(明示的な)スタックに保存し状態を復元しなければ等価な書き換えとは言えない。提出 #36771698 (Ruby / 419 ms / 非再帰 / 頂点番号と隣接頂点リトの添字を記録してループ)提出 #36771423 (Ruby / 409 ms / 非再帰 / 頂点番号だけを記録しているが隣接頂点リトを破壊的に使用して手戻りを防いでいる)ちなみに迂闊な DFS をあえて再帰で書くとこうなる>提出 #36774583 (TLE)隣接頂点リトを繰り返し走査する 14 行目を見れば O(N^2) が納得できると思う再帰↔非再帰を行き来するときに知らずこのような違いが生じているので TLE でなかったものが TLE になったりするそれゆえ結論 : DFSを非再帰で書くのはわりと難しいでも心霊現象ではないと思うの■再帰→非再帰の書き換えを初めて意識したのはこのとき>log[20050929p01] やねう企画2005年度入社試験見覚えのあるお名前@2022-12-21 八百倍役に立つ記事があるよそれ非再帰で書けます - Qiita


20221120() [AtCoder] 精進1昨日あった ABC278-DAll Assign Point Add( diff)クエリ1を愚直にやってはいけないのはわかるだから Hash を使った。提出 #36620785 (TLE×2)ちなみにこちらの提出 #36623538 が素直に配列を埋める解法で全く同じケースに対して TLE×2どうして2つが同じ性質を示すのかまるでわからない昨日はもうTLE になるはずがないと考えてしまって現実に対処するのをやめてしまった今日の提出1#36664071 (329 ms)配列2本を使った解法1つにはクエリ2の累積和をもう1つには累積和のベースになっているクエリ1のバージョンを記録した古いバージョンに基づく累積和は無視する今日の提出2#36664254 (351 ms)昨日の Hash を使った解法を踏襲したものこの提出 #36664376 (TLE×2) と比べて間違い探しをしてみようHash#clear を呼ぶと TLE だが代わりに = {}Hash を使い捨てにすると ACベンチマークをとってみても差が出ないので単純に Hash#clear が遅いという話ではないこういうツイトを見かけたAtCoderABC278DTLEするのでこんなところで解けないとは耄碌したなーと思ったが… unordered_mapで書いてたところを普通のmapに書き換えたら通った普通逆じゃないかと思うんだけどまだまだC++奥が深い RubyHash 実装に固有の秘孔ではないらしい■精進2同じ ABC278-FShiritori( diff)D の次に解けたのが F なので E を飛ばして FbitDP が見えたらちっと下手なことをしても通る制約ただし 16 要素の順列はちっとではないやるだでもできなかった。提出 #36668555 (AC / 66 ms)Hash のデフトプロックを使ったメモ化再帰で書いたDPトムアップの解法なんだけどメモ化再帰で書くップダウンになるップダウンの方が頭の中を素直に反映していて書きやすい気をつけるべきはDP の詳細を詰めず状態をまとめないままメモ化再帰を書いてもメモ化の意味がないしTLE になるということ■精進3同じ ABC278-EGrid Filling( diff)これが緑 diff ってマジ? 俺は制約を見てh=H/2; w=W/2 のときの計算量を計算して諦めたよDE のコンボでいじけちったよ。提出 #36685628 (AC / 737 ms)書いてみれば通った2次元累積和はたぶんかなり苦手にしているそれを尺取りにしようなんてしたら脳みそがオーバーフローしてもしかたがない実態「書いてみればの語の印象の通りではない138 ms と飛び抜けて速い提出がある>#36636856数の種類ごとにそれを覆う最小の矩形を求めておいてそれが黒マスに含まれるかどうかを効率良く(変化量の累積和の累積和で)調べてるっぽい累積和を使わないとこちらのように短く書けてそれでも通るっぽい>#36649717 (347 Byte / 1586 ms)まねまね>提出 #36698536 (AC / 560 Byte / 131 ms)答えを求める部分(末尾5行)をこういう風に書きたいというところと Array#transpose を失敗させない条件から逆算して配列の要素数と添字を調整している。ABC278_e.rb27←これを最終形にしたいけど大勢に影響しない程度の計算量の削減(※黒塗りがグリドの上()にはみ出しているときの変化量を1行(1列)に圧縮した)と見た目の違いしかないので提出を控えている■今日の ARC152 はどうだった自分のすべての提出1時間半かけて2完のノルマは達成したB の提出が完成してから 15 分くらい粗探しに時間をかけていた粗というのは書き損じではなく考え違いARC では慎重になる自分にとって2時間で3問を解くコンテトなので ABC とは違う時間の使い方ができる昨日の ABC がひどかっただけに慰められる結果C 問題は B 問題の後だったので図形的な意味はすぐに掴めたのだけどそこからがさっぱり解説放送があるよ>AtCoder Regular Contest 152 - YouTube


20221114() [Ruby] Ruby 3.2.0 Preview 3 リリースを読んでいたRegexpのマッチングアルゴリズムの改善という項目があったメモ化によってマッチ時間が改善するというFeature #19104 未完了 Introduce the cache-based optimization for Regexp matching 位置と状態をキッシュするっていうから 20220218 にテー書いていたことがあながちテーではなかったってことかなLimitation の項目に書いてあることが面白いまあそうでしょうという感じ緩和策なのでそういう場合は無効にするだけ? ReDoS 一般が話題になった時期があったけどタイムアトの採用もあり見つけた問題を着実に解消しているのだな


20221113() 『ロマサガの自由度と難度が高い理由『ミンサガ リマスタ河津秋敏氏動画インタビーの内容を全編書き起こし |ム・エンタメ最新情報のファミ通.com■先日整理していた本の中SaGa 2 秘宝伝説 完全クリア編があり94ージの開発者インタビーに添えられていたプロールによると河津氏は 1920 年生まれなので 8 日前に 102 歳になっている(そんなはずがない)ヤクーツク出身ってなんだ


20221112() [AtCoder] 今日は大和証券プログラミングコンテ2022 Autumn (AtCoder Beginner Contest 277) があった。コンテト成績証自分のすべての提出ここひと月ほど ARC の開催が途絶えていてそうするとレトが安定するんだなあ今回は E 問題でも緑 diff 止まりだった一方FG 問題がともに橙 diffったらしいF 問題はてっきり自分が苦手なタイプの水 diff だと思っていたので意外GRandom Walk to Millionaireの方が見込みがあると思って考えているとりあえずサンプルが合うところまではできたのだけどこれは O(KKM) であり K,M3000 の制約下では時間オーバ報酬がレベルの2乗だというところが嫌らしいと思うんだよね2乗でなければレベルの和と個数を覚えておくだけで良さそうなところが2乗だからまとめることができないでいるレベルごとに独立して遷移を行うせいで K(移動回数)×K(レベル数)×M(辺の) の計算が必要になってるFSorting a Matrixも考えてる行のソトと列のソトをそれぞれでがんばれば解ける気がするんだけど「がんばるが曲者行のソトは比較的問題が少なくて列の統計情報を一度記録しておけば素直に比較ができる列のソ行ごとに非ゼロの列を選んでソトして列の序列を作りージして1本のソト列にする入力がすべて非ゼロだった場合最初のソトに O(HWlogW) かかるのと扱う2項関係が 行×(行内の2項関) = HW(W+1)/2 個存在するのがつらい最大ケースで数十秒かかるあと制約も曲者でHW のそれぞれは上限を持っていないものすごく縦長の行列もものすごく横長の行列も考えられるト部分の logW がほぼ logHWったとしても問題はないけど2項関係の W(W+1) は非常によろしくないト列をソト列として保持したままうまくマージする方法はそれ以前の問題としてエラーなしでは最初の提出 #36477837 (WA×12 / TLE×5) が一番 WATLE の数が少ないこともある愚直にやったものの TLE が一番少ないところと愚直なのに WA があるところが問題ケアスミスなのか根本の方針が答えにたどり着けないものなのダメケースを1つ2つ見つけては結果が改善してるのを確認してるのに提出すると WA 数が何も変わらないのつらい列のソ(比較)の肝は一方または両方が 0 の行では順序づけを保留することと同値の場合はグループ化することだというのが今の理解@2022-11-14 G 問題トを見ましたGi 回目の移動で頂点 u にレベル X で来る確率が p だとすると知りたいのはすべての iCu=1 なる u について pX2 の和(i,u) を状態として pX2 を管理しようとするとレベルアップの処理が pX2p(X+1)2=pX2+2pX+p となるって ppXpX2 を管理しておけば更新も含めて計算できる これがヒトであって答えでないのはこれを読んでさえさっぱり遷移が書けなかったから何度も何度もガチャガチャやって考えてガチャガチャやって考えてお風呂に入って考えた。提出 #36502350 (TLE×13)書けなかったのは 29 行目と 30 行目と 32 行目それで苦労の結果が TLE計算してみたら N,M,K3000Ds.size=3E.sum(&:size)=2×MC0.size+C1.size=N だからループの回数が K×(3×2×M+N) = 6300Ruby1000 万回を超えたあたりから厳しくなってくるのでこのままでは無理だよ