/ 最近 .rdf 追記 設定 本棚

log[2023-07-05]



20230705() 頼まれて家の Wi-Fi の事前共有鍵を入力したときAmazon に保存するという不穏なオプションのチックマークはぬかりなく外したのだけどその後にアマゾンから送られてきた別のデバイスが最初からネトワークへの接続方法を知っていた不正アクセスでは?Wi-Fi設定のAmazonへの保存に関するよくある質問 - Amazonカスタマーサービス 便利ではなく選ばれにくく選んでもらいたいとも思われていないであろう選択が機能していない疑いAmazonで買うとWi-Fi設定が不要にスマトホーム規Matterへの取り組み - AV Watch もちろんロッカーに鍵を預けてはいない


20230704() [AtCoder] 精進。ABC009-D漸化式( diff)ABC を古い方から埋めていく取り組みでつまずいてつまずいたままになっている最初の問題トコンベア式に入力を出力へ変換していく装置がある10^9 回の処理を繰り返すわけにはいかないのでどうやってプロセスを加速するどこかのツイトで行列累乗だと読んだんだよねたしかにそれ以外にない見た目をしている(しかし気がつかない)その人は FPS で解くシリーズをやっていたらしいけど提出 #43246893 (AC / 351 Byte / 1730 ms)2回連続で行列の掛け算が書けなかったのがつい2週間前のこと(20230619)なので今日は3度目の正直Ruby での提出一覧を見ると3桁 ms の提出がいくつもあるK^3logMK^2logM にする Kitamasa 法というものがあるらしい高速 Kitamasa 法というのは聞いたことがある気がするなあ


20230701() [AtCoder] 今日は CodeQUEEN 2023 予選 (AtCoder Beginner Contest 308)があった。コンテト成績証今日は F 問題までこれというところのないつまりは典型的な問題ばかりだったG 問題は TLE 解しか書けなかったコンテトの途中から終了後しばらくの現在まで AtCoder にアクセスすると必ず 403 Forbidden が返ってきて即座にリロドすると正常に表示されるという状態が続いているとても面倒以下 A-F のふりかえりANew SchemePAST のはじめの方にでも出てきそうな問題書かれていることを愚直に実装するBDefault Priceこれも愚直に実装するまだ効率を考えなければいけないような制約ではないこれに5分の時間をかけてしまった理由は入力の受け取りに失敗していたことに気がつくまでの時間って AtCoder で色っていったら数字で与えられるのが常なんだもんCStandingsたぶん分数を浮動小数点数で扱っても AC になるのかなあC 問題だし(記:ツイッターを眺めてるとダメっぽい)一応 sort メソドに比較関数を渡して通分してから分子を比較するようにした浮動小数点数って特殊で使用場所を選ぶものっていう認識で整数で間に合うところで使うものではないと思ってるなお JavaScript……DSnuke Maze素直にグリドを探索する同じマスを二度処理しないようにするなら BFS でも DFS でもいいだろう再帰関数を使わないで書くなら違いはキーから shift で出すか pop で出すかの違いしかないEMEXいいかげん MEX という概念を認知するくらいには MEX を問題で見る機会が増えてきたけどっぱ「いずれとも一致しない最小の非負整数みたいに否定で定義されるのは脳に負荷がかかるこの解法を DP と呼ぶのかなM の字が出現した状態はその値が 0,1,2 である場合の3通りがあるME の2字が出現した状態は(0,1,2)×(0,1,2)の9通りが考えられるけどMEX への影響という観点では M(0)E(1)M(1)E(0) を区別する意味がない3桁のビトフラグで8通り持てば十分(ただし0b0000b111 は0通りに決まってるので意味があるのは6要素)ところでこの問題の典型要素「3つのうち真ん中に注目するがあったらしいが気がつかなかったそういえば ARC160-BTriple Pairもそうだったけど真ん中を固定できなかったな>20230514次からは典型として注目できるといいFVoucherトすれば貪欲に無駄なくクーポンが利用できそう何をソトしよう必ずこうでなければいけないという必然の選択はなんだろう高額商品は使えるクーポンの幅が広いので低額商品から優先的にクーポンを割り当てたいあるいは最低価格の設定が高いクーポンは利用機会が限られるのでできるだけ優先的に使用したいでもクーポンが余るような時に最低価格設定が高いからといって値引きの渋いクーポンを使いたくはないどうしまし低額商品から順番にクーポンを割り当てるプライオリーで使えるクーポンを管理しておいて値引き額が最高のクーポンから順に使用していく一度使用可能になったクーポンはその後ずっと使用可能だからできるkotatsugame さんの動画を見ていて言及されていたので思い出したけどーポンの値引き額が商品価格を超えないことを制約で確認しているもし値引き額が商品価格によってキップされてしまうなら常に最大の値引きクーポンを利用するのが最適ではなくなってくるのでもしそんなことがあれば DP でもしてすべての可能性を考えないと答えが出せないと思うGMinimum Xor Pair Query解けてないよ黒板に書かれている数字をプリックスで分類しておきたいなと思った数字は 30ト幅の範囲なんだけどたとえば 29ト分のプリックスが共通する数字が2つ以上あったら30ト分のプリックスが共通するものがないとしたら答えは1に決まっているできるだけ長い共通プリックスを見つけることが答えを出す最初の一歩だと思ったたぶん TLE なのは次の一歩が愚直組み合わせだからなのだろう見つかった共通プリックスが短いほど組み合わせがやばいプリックスを取り除いて MSB を無視して再帰的にプリックスで分類していくのだろう難しいっていうかややこしいよプログラムの概形が見えない今の TLE 提出の段階でもややこしくて配列に逃げたんだけど配列の非効率的な操作が TLE(唯一の)原因だったら嬉しいなあ3要素以上の組み合わせを考えることってなくない? 3要素あるならより長い共通プリックスが見つかると思うゃあ最長の共通プリックスを効率良く見つけるのに失敗してるな最長の共通プリックスを見つける算段は立ったと思うけどそれが bトの長さだとすると最大で 2^b 組の XOR から最小値を見つけるのはどうすれば? SortedMultiSet があれば考えることもないけど(ないんだな)G 問題間接的に解説を読みました整数集合から2つ選んだXORの最小は整列させた隣り合う数のXORのどれか うんそうだねできるだけ長い共通プリックスを持つ2数は隣り合う数字だねバイナリ表現と数としての評価が繋がらなかったんだよあと条件を緩和する発想もなかなか出て来にくいと思う隣接する2数の中には最長の共通プリックスを持つものもあるけどそうでないものも当然あるだけど区別する必要がないし区別しない方が処理しやすいG 問題結果報告■1.平衡二分探索木がない言語の頼れる味方 BIT を使ったもの>提出 #43153261 (TLE×23)XOR した値が 30ト整数の範囲でどういう値をとるかわからないから BIT の実装に Hash を使っているこれはお時間やばめ■2.XOR した値に対しては Hash 実装の BIT のままだけどクエリ先読みができる x については Array 実装の BIT を使ったあと必ず効果があるものではないけどクエリ1と2の処理をクエリ3が来るまで遅延させて同一の x に対する処理がまとまるようにした。提出 #43229129 (TLE×14)■3.XOR した値に関して Hash BIT の代わりに削除可能なプライオリーを使うようにした。提出 #43229096 (AC / 2342 ms)削除可能なヒープの実装『アルゴリズムとデータ構造(ールホル, サンダース)の課題にあったと思うんだけどどう実装するのか知らなかっただけどこの前比較可能なキーだけを突っ込めるプライオリーにひと皮かぶせてキーに値を関連付ける方法を hmmnrst さんの提出 #42277952 で知ったのでーに個数を関連付けて削除とするのは簡単だったープへの出し入れは定数倍が重いので節約術(2個目以降の同一キーはヒープに入れない)としても個数の管理を役立てていきたいと思うもうひとつ初めて見る prepend メソドの使用例でもあったこれは継承を操作するメソドで自分が持つ言葉のイメージとは裏腹に prepend されたモジールは継承階層の末端側に配置される反対のメソドは append ではなくて include らしいそちらはよく知っているが目から鱗の発見でもあったincludeprepend なのprependRuby1.9 の頃にはなくて 2.3 の時にはもうあったメソドらしいところで自分の提出では prepend も継承も使っていないーバーラドされた親クラスのメソドを呼び出す方法が見つからなかったからだ具体的には PQ2#head メソドの中でーバーラドしている PQ2#deq メソドではなく PQ#deq メソドを呼び出したかった同名のメソドなら super で呼び出せるけどC++ には明示する文法があるんだけど図らず(可能ならいつでも)継承よりコンポジションを別の理由から確認する結果になったたぶん Ruby での方法は alias だけどあまりにも姑息なやり方だと思う■4.これは解説を読む前に作ってい「最長の共通プリックスを見つける算段は立ったと思うけどそれが bトの長さだとすると最大で 2^b 組の XOR から最小値を見つけるのはどうすれば? SortedMultiSet があれば考えることもないけど(ないんだな)と書いていた頃のもの2^b 組について愚直に全件調べているが意外に健闘した>提出 #43229224 (TLE×14)


20230630() [AtCoder] 精進。ABC146-ERem of Sum is Num( diff)累積和(要素1要素1+2要素1+2+3……)K で割った余りを数えておくこのとき添字を使って補正することで要素数1の部分列がとるべき値要素数2の部分列がとるべき値……が同一の値になるのである要素を始点とする部分列のうち条件を満たすものが定数時間で数えられるようになる注意を要するのは要素数が K 以上の部分列が条件を満たすことはないのでっかり K 個以上の累積和を集計してはいけない提出 #43073937 (AC / 352 Byte / 224 ms)全然サンプルが合わなくてっちを修正しこっちを修正し一休みして考え違いを修正してっとすべてがあるべき形に納まったときにサンプルが合った実装ミスが2つ以上あって根本的な考え違いまであったのでは数合わせはほぼ不可能つらかった


20230629() 馬主アニメ【推しの子】8話でバヌシと発音されていた自分もそう読んでいたけど少し前にウマヌシと発音し直される機会があって音読み訓読みを揃えるならバヌシは異端だったかもしれないなと納得していたバヌシと読むのが自分だけではないと知って辞書を引いてみたらウマヌシとバヌシに加えてバシュまで載っていたただ微妙な違いもあるらしく明鏡国語辞典ではバシュとバヌシは相互参照の関係にあるがウマヌシはそうではないバシバヌシに「馬の持ち主という意味しかないがウマヌシには2つの意味があって1番目「馬の持ち主でありバシバヌシへの参照がある2番目がウマヌシ固有の意味「競走馬の持ち主とある広辞苑にもこれら3つの見出しがあるがやや混乱が見られるウマヌシからバシバヌシへの参照がありバシバヌシが相互参照の関係にあるのは同じだがバヌシからウマヌシへの参照があるところが異なっているウマヌシはバヌシを包含するらしいからバヌシ⇒ウマヌシは(明鏡と異なっていても)不自然ではないバシュからウマヌシへの参照がないのが不自然意味はウマヌシ「馬の持主競走馬の持主バシュとバヌシが「(競馬で馬の持主とある(競馬で)」はまったく余計だと思うそのせいでウマヌシとの区別が曖昧になるし競馬ではない馬の持ち主を指す別の言葉があるとも思われないので普通に持ち主とか飼い主


20230627() [AtCoder] 精進。ARC060-E高橋君とホテル( diff)ダブリングだという予備知識ありで取り組んだーバARC060E『高橋君とホテルがよく似た問題だから考えてみて! https://t.co/3rxVISM6ZZ提出 #43010235 (AC / 346 Byte / 824 ms)うんただのダブリングだった移動に向きはないし進めるだけ進むだけだしD 関数で reverse_each を忘れてバグらせたのは内緒出てくる答えがやけに2べきに揃うと思ったんだ


20230624() [AtCoder] 今日は東京海上日動プログラミングコンテ2023AtCoder Beginner Contest 307があった。コンテト成績証C 問題が大変厳しかったdiff を見ても DE に勝る水 diff になっているC を飛ばしてさっさと DE を解いた人も多かったみたい(終了後に提出一覧を見て知った)以下 B-E の振り返りと F の精進についてBracecar異なる文字列を組み合わせて回文が作れるかを判定する問題permutation(2) を使うべきところで combination(2) を使って WA を出したたぶSi​ と Sj​ をこの順に連結した文字列が回文となるようなものが存在するか判定してくださいという問題文Si​ と Sj をこの順に連結という文面から勝手に i<j であるかのような雰囲気を感じ取って勘違いしたのだろう。提出 #42900133 (AC)CIdeal Sheet制約は大きくないから愚直に実装するだその実装がたいへんだったト列でやるとちっとは楽になるんだけど本当にちっとだこれもペナルをくらった最初は動かせる範囲を総当たりする4重ループを書いていたのだけどたとえばシA がシX の1行目をカバーしないときB は必ずシX の1行目をカバーしないといけないということはカバーする範囲を1ずつ動かす総当たりではなくX の四隅をカバーする総当たりでいいのではないかというケチな考えが忍び込んできたこれの罠はシAB の一方がシX を完全にカバーするときでそこまで想定していながら問題があると気付かずに提出して WA を出してしまった原因に心当たりがあったのですぐに修正できたのが救い。AC まで 36(+ペナ5分)DMismatched Parentheses対の括弧に囲まれた部分を省いて出力すればいい括弧の中の文字列をスタックで管理するとして括弧の外の文字列を特別扱いしなければいけない同じようにスタックで扱えるかと考えてみたけどどうも良くなさそう。AC まで6分半EDistinct Adjacent前回の ABC306-D ほどあからさまではないけどこれも2値を記録する DP人1が選んだ数字とそれ以外の数字をそれぞれ選ぶ場合の数を記録していくN の時点で人1が選ばなかった数字を選ぶ場合の数が答え。AC まで9分■ところでE 問題に関して Ruby で一番最初の提出であり AC であるこちらの提出 #42909715 には(目に見える)ープがないN が数えられないくらい大きな数だった場合は自分の DP 解ではダメでこちらをまねしなければいけないよく見ると mod(=998244353) の他に mod-1(=998244352) が計算に使われているmod-1 乗ならともかく mod-1 の累乗にどんな使い道があるのか自分は知らないFVirus 2( diff) は時間内に解けなかったので精進長めの時間制限4秒が不安をあおるダイクトラ法で感染者からの距離を管理して新規感染者を見つけていきたいどんな下手を打つと TLE になるだろう新規感染者が発生した部屋は次の日には感染者からの距離が0になるわけで最短距離の更新が広範囲に何度も起こる場合に TLE になりそうできるだけキーを膨らませないようにケチりはしたけど特別なことはせずに 2863 msAC になった01BFS のように一日一日ステップを刻みながらダイクトラ法を進めるのが頭の中がこんがらかって難しかったつまりダイクトラ法を基本にしつつ日を刻み1日を2つのステップに分けるのだけど各ステップでやるべきことすべきでないことを見極めるのが難しかった無駄を許すと TLE になりそうだったのもあるし迂闊なことをすると2つのステップが連携できなくて機能しなくなるのでC 問題ケチな考えを追い出して多少の無駄があっても見通しがいいことを第一に書き直してみた>提出 #42960011 (AC / 515 Byte / 78 ms)515トはタイプするのに長すぎるということはないねE 問題の mod-1 についてグラフ彩色 (ja.wikipedia.org)のページに (M-1)^N+(M-1)(-1)^N という式が書いてあるmod-1 は単にマイナス1のことだった(それはそう)


20230622() 今日初めて気がついたことキウンには2つの漢字があってそれぞれ意味が違う機運(ょうどいいタイミング)気運(時勢のなりゆき)実は3つ目もあった黄檗希運(あるお坊さん)以前の精通と同じで別々には知っていても並べる機会がなかったので


20230621() 気になってるゲームに体験版があったからプレイしてみたら UI がとても目障りでつらいトを表示したときフーカスアイムの直下にツールチップを出すから実質的にリトの行数が1行しかない一行一行に注目しながら装備品を選んだり戦闘中の行動を選んだりしないといけないつねに視界の8割を目隠しされているような不自由なプレイ体験なぜこうなってしまうのトから選ぶときまずは全体の輪郭(各行の長さ)や黒さ(文字の画数)や何個あるうちの何番目かといった属性であたりをつけるでしょう?(そうじゃないんだろうな) 何も見えない何もというか下を押して選んでみるまで下にある次の項目が見えないなぜなの■四角ボタンで消せた! でもこれ正解はオンオフではなくて固定領域に詳細を表示することなんだよね


20230620() [AtCoder] 先週の ARC162-CMex Game on Tree(ぎりぎり青 diff)当日は 40 分くらい時間が残っていたけど解けなかったMEXK 未満でも K より大きくてもダメなんだよな部分木での攻防がより大きな部分木での勝敗に影響したりするかなーとか考えていた提出 #42772931 (AC / 345 Byte / 196 ms)ネタバレをね読みましたCAliceが高々1手操作して勝てないならBobが勝つAliceが操作した場所に応じてBobが適切な頂点にKを置くとっかく操作した分が台無しになって1手操作しても勝てない状態が延々続くからだ これがすべBob が…… K を置くとでもそれが見えなかったのだし実装も 13 行目の k-sk<=v を最初は k-sk==v と間違えていたので何も言えない難しい問題だった


20230619() [AtCoder] 精進。ABC236-GGood Vertices(ぎりぎり橙 diffこの色は前2問の EF ががっつり青 diffった影響が大いにあると思う)5日前(20230614)に解いた問題の類題だとのツイトを読んだ>ーバ「実「行列の掛け算っぽい計算さえできれば行列累乗できるから数え上げ以外の問題でも行列累乗を使うことはあるけどっちはかなり難しいねABC236Gが例題だよ https://t.co/8OvqVZpuLz100×100 の行列を 10^9 乗するので3千万の計算量これを辺を1本1本追加しながら N^2(≦1万)回繰り返すともちろん TLE になるどうしよう()今回は場合の数を数えるのが目的ではないから行列の中身に使用した辺が追加された時刻 t の最大値を記録すればいいと思った(「どうしようこの一語にはコンテトが終了してしまうくらいの時間が詰まっているときどき思い出しては頭の中で転がしていた)提出 #42752849 (TLE×52/AC×58)今回も行列の掛け算を書き間違えたのでこの前の提出を見ながらまねして書いたそして TLEーカルではほぼ9秒以内に完了しているのでッジサーバーでは約半分の 4.5 秒かかる見込制限時間は特に長めではない2秒Ruby でうん千万のオーダーは厳しいよう提出 #42753403 (AC / 1995 ms).zip().filter_map{}.min.zip(){} での逐次処理に書き換えたらローカルで5秒になったので提出したら ACった案外いけるもんだ


20230617() [AtCoder] 今日はトヨタ自動車プログラミングコンテ2023#3(AtCoder Beginner Contest 306)があったけどジッジが詰まりまくっていて Unrated になった「このコンテトは full-feedback 形式のコンテトですが嘘だったからかな終了後 20 分経つ現在でも時間内に提出した F 問題が WJ のまま止まっていて生殺しの状態なのだ今日は既視感のある問題ばかりで 36 分で E 問題まで通ったのだけどそこから1時間ちかく誤読した F 問題を考え続けていたFMerge Sets方針はすぐに立った(この方針が正しいかどうかはまだ不明)集合を全部まぜまぜしてソトしてある要素の後ろに何個の要素があるかを二分探索で調べるつまりある要素が他のいくつの要素の添字を押し上げる効果を持っているかを計る方針ところでねf(A,B) の計算において AB は可換ではないそして求める総和というのは i<j であるすべての f(Si,Sj)だけどずっと i<j を区別しない f(Si,Sj) について考えていた最後に割る2すればいいんじゃないのって考えていた■制約について1つ気になって確認したことがあるAB が空集合だとは書いてあるけどつまり AB に共通する要素がないとは書いてあるけどA の中B の中に限ったときに共通する要素がないとは書いていなかったと思う()だから添字を使って同値の要素に便宜的に大小関係を導入したんだけど誤読が明らかになったときにソト列の二分探索から BIT を使う解法に変わったのでそんな面倒な手順は必要なくなっていた。提出 #42363020 (AC) に残ってるのは虫垂みたいなものこの日記を書いてるうちに AC の結果が出ていたもう終了から 40 分経ってるよちなみに誤読なしでトレトに実装するとこれだけシンプルになる>提出 #42370906 (AC)コンテト成績証へなちょこに Unrated を嘆いたりやる気を削がれたりしている暇はないのだ順位表の1ページ目にいる人たちなんて最初から Unrated なんだから各色相当の実力があればなるべくしてその色になるUnrated ばかりならその機会がないけど現状はそこまでひどくないっかりするのは上振れに期待しているから毎回青パフォ以上を出せばいいだ建前はそうでもそれができないのだから調子がいいときに Unrated なのはつらいAB に共通する要素がないとは書いてあるけどA の中B の中に限ったときに共通する要素がないとは書いていなかったと思うっぱり書いてあったのかなあ部分文字列の定義は連続するかどうか曖昧だけど集合の定義は多重かどうか曖昧ではなかったりする? 反則的だとは思うけA={Ck1​​,Ck2​​,,CkA∣​} となるような k1,k2,,kA∣​ をとることが曖昧でなくできることから逆説的に重複する要素がないと判断できる? ……あった! i1!=i2または j1!=j2​ ならば Ai1,j1​​!=Ai2,j2​​って書いてある! とことん読み違える問題だったなあ


20230614() [AtCoder] 精進先週の ABC305-GBanned Substrings( diff)終了後に4か所で行列累乗というキーワドを見ていたでも難しい何×何の行列を用意するのその中身は提出 #42254964 (AC / 639 Byte / 1622 ms)まずダメ文字列を表すビト列を1文字から6文字まで DP みたいにして用意したN が6以下ならこの時点で答えが出せる次に6文字のダメ文字列を元にして1文字延長を表す 64×64 の行列を作ったここまでは一歩一歩手探りしながら順調に来たけれどサンプルの答えが全然合わなくて袋小路に入り込んでしまったどの部分主として 28 行目と 29 行目にあたる部分を延々書き換えながらなんで掛け算を繰り返すとダメ文字列が答えに現れてくるのか理解に苦しんでいた私は行列の掛け算を正しく書くことができませんそこは考えるとことちゃうやん? ただ定義通りに書くだけよ■計算量行列の掛け算は3乗なのかな64^326それに累乗部分が logN60行列の列あたりの非ゼロの数が0か2個なのでゼロだけの行と列がそれなりにありそうだし疎らなのをいかした効率化もありそうでも定数倍の改善なら競プロでは評価されないね■対角化と Jordan 標準形のキーワドを得た! 名前だけでもうおなかいっぱいです。ネタもと『プログラミングのための線形代数なんだけど今まさに読んでい【第5「型はウェブシスム開発「エドゲームをもたらすか | GeeklyMedia(ークリーメ)にタトルが出てきてびっくりしたよ■最大ケースが 1000000000000000000 0 なのかな64×64 のうちダメ文字列に対応する行と列を省いたとしても M=0 のケースでは良くならないそれよりも行列のサイズを 32×32 に抑える方が良くなるだろう32×32 で十分みたいなんだけどわかんない>#42246448提出 #42262239 (AC / 769 Byte / 257 ms)32×32 で足りるというのでとりあえず 32×32 を基本にしてみてダメ文字列の行と列を省いたりもしてみたら1桁早くなったなんで 64×64ったり 32×32ったり行列のサイズがまちまちになるんだろう1文字分の冗長さはどこから生じててなんでお構いなしで答えが合うんだろう参照する必要のない6文字前を使って入出力を無駄に細かく分類してもそれが理由で間違えるわけではないなんなら7文字前8文字前まで利用してさらに細分化しても手間が増えるだけで答えが違ってくるわけではないということ?