/ 最近 .rdf 追記 設定 本棚

脳log[2025-04-12~]



2025年04月12日 (土) [AtCoder] 今日は AtCoder Beginner Contest 401 があった。変な沼にもはまらず実装ミスもせず、かなりの上振れ回だったはずだけど、なんとか提出を間に合わせた F 問題が TLE×5 で無念。■A 問題 Status Code。一番あり得るミスは Success と Failure のスペルミスだと思った。コピペする手間は惜しんだけど提出前に一応凝視しておいた。■B 問題 Unauthorized。ロジックを実装してシミュレートする。素直な問題は好き。■C 問題 K-bonacci。直近 K 項と K 項の和を持って N 項目までを計算する。■D 問題 Logical Filling。話を簡単にするために、o の隣は無条件に . に書き換えておいた。DP をするのかな復元するのかなどうやるのかなと最初は考えていたけど、出力が必然の o. かそれ以外の ? かということで、2通りの可能性があるなら即座に ? が決定するのだった。最終的に見つかった条件は、「? を1つ以上 o に変えるかどうか」「? を最大限 o に変えなければいけないかどうか」「(最大限 ? を o に変えるとして)連続する ? の個数が偶数か奇数か」というものだった。これで T が決まる。方針を定める時間と考えながら実装する時間で 30 分かかった。■E 問題 Reachable Set。不可能なケースがあるのかなとまず考えた。ある。サンプル2がそうなんだけど、頂点5を経由しないと頂点1と2が連結にならないので、k=2,3,4 が -1 (不可) になる。じゃあ使える辺を使ったときに 1-k までが連結かどうかを UnionFind で管理したいね。同時に、使えない辺の先に繋がっている消したい頂点の集合を管理したいね。同時にできる? できる。14 分かけたので D の半分。■F 問題 Add One Edge 3。直径の候補は木1の直径と、木2の直径と、i-j を結んで新しくできた i-j を通る直径の3種類だと思った。木の直径は DFS 2回で求まる。新しくできる直径は、各頂点について最も遠い頂点がどれだけ遠いかわかっていればわかる。それは全方位木 DP で求まる。2回の DFS を2つの木に対して合計4回やると、2秒を超えてしまって TLE だった。なにかへまをしていて5秒 10 秒かかるようなスクリプトになっているなら惜しくはないけど、制限時間が3秒だったら通っていたというならあまりにも残念。■コンテスト成績証。ぴったりギリギリで青パフォ。973 位だから「3桁順位に入りたいよー」と書いていた前回の雪辱は果たせたけど、最近落ち目なのだから今日くらいはもっと調子に乗らせてほしかった。


2025年04月11日 (金) [Win11] 2月から使っている新しい PC でもライブラリのブラウズと再生に Songbird を使ってるんだけど、AppData\Roaming\Songbird2 以下を丸コピしたのにレイティングと再生回数がリセットされてしまった。ProfileManager を起動してみても間違いなくコピーした XXXXXXXX.default プロファイルを使用しているけどなぜなのか。4つか5つのデータベースが AppData の外に新規作成されていたのが原因だった。それはなぜか。prefs.js の中の4つか5つの値が絶対パスで AppData 以下のデータベースを指し示していたので、あさっての場所(旧 PC のユーザープロファイルがあったのと同じドライブとパス)にデータベースが作成されていた。現在の場所に書き換えるとコピーしたデータベースがきちんと利用されてレイティングと再生回数が戻ってきた。めでたし。


2025年04月10日 (木) 国民全員に現金5万円給付、政府・与党が検討 米関税措置など踏まえ [石破政権]:朝日新聞」■集めた税金の使い道がわからない無能の証明。


2025年04月09日 (水) 20 年以上ぶりにトッポを食べた。うーん。トッポが変わったのか、自分が変わったのか、たまたま今の体調が悪いのか、たいへん厳しい。中も外も油という感じ。外のプレッツェルが油染みてるのは知ってるし構わない。でも中のチョコ(?)は黒いけどチョコの味はせず、甘みもなく、ただただ脂。この黒い物体はミスドの一部のドーナツにも見られて、無を味わうことができる。ボテトチップスは BIG BAG しか買わない自分だけど、トッポを1箱食べると必ず胸が重く苦しくなる(残念なことにまだ残っている)。新発売されたときは好きで食べてたんだけどな。トッポがおいしさを失ったのか、自分が若さを失ったのか、どっちだ。■「ポッキーvsトッポ食べ比べ!味の違いは?美味しいのは? | 味覚ステーション」 最終評価には同意しません!■「「めっちゃ怖い体験した。アメリカに長く住むとこうなっちゃうんだって」日本に帰国した渡米者の恐怖体験におののく日本人たち - Togetter [トゥギャッター]」 ミスドの感想がいくつか。たしかに、油っ気も甘みもまるでなくて、代替ドーナツが食べたいわけじゃないんだけどな、と感じることがある。おいしく食べられるときもある。店の違い、種類の違い、時間の違い、舌の違い、何が違うのかはわからないけど、ハズレ率はかなり高い。


2025年04月07日 (月) これはたぶんさくらインターネットの話題だと思う。おとといの日記(20250405)が ruby/bin/irb というワードを含んでいる。で、これは日記(tDiary)が採用している HikiDoc の記法なのだけど、二重バッククオートで括った単語は <code></code> でマークアップされて等幅で表示される。ruby/bin/irb を一組でも二組でもバッククオートで括ると日記のプレビューや送信ができなくなって次のようなレスポンスが返ってきた。「Forbidden The server refuse to browse the page. The URL or value may not be correct. Please confirm the value. TIME: 1743945073.137446 (2025-04-06 22:11:13 (+0900)) METHOD: POST PATH_QUERY: /ds14050/diary/update.rb SAKURA Internet Inc.」 Ruby のバッククオートは外部コマンドを実行して出力を埋め込むリテラルなので、OSコマンドインジェクションが疑われているのだと思う。Ruby が疑っているのなら Ruby で書かれた tDiary を設置して実行している自分の管轄だけど、もちろんそうではないと思っている。hikidoc.rb はプレインテキストを整形するマークダウンに類するスクリプトであって、二重バッククオートにマークアップ以外の意味はないし、バグでなければ外部入力を実行したりはしない。だけど外形的にはそのように見えてもしかたがないと思うし、同時に、いいかげんなものだなと思う。


2025年04月06日 (日) 【恐怖】不二家平塚工場のチョコレートを形成する機械で男性従業員が頭部を挟まれて死亡 : 暇人\(^o^)/速報 - ライブドアブログ」から。38「センサーがエラー起こして原因取り除いたら正常に稼働して挟まれたんかな 」。39「>>38 あるあるやね まずは手動操作に切り替えろって死ぬほど言われる 」。■これは盲点だと思った。自分は先のことが考えられないので、予測して警戒することができない。たとえばね、はかりの上に大きめのトレーが置いてあって、右半分と左半分に1個ずつ何かが置いてあるとするじゃない。片方を持ち上げて残された方がバランスを崩してトレーごと落ちる、ということをやるんですよ。これよりもう少し派手にやったのです。■別の言い方をすると、A⇒B、B⇒C だということがわかっている、もしくは指摘されているとしても、A⇒C には想像が及ばないということ。先のことを考えるというのはこれの逆をやることで、A⇒C のために中間ステップである A⇒B、B⇒C を想定して実行することなのだけど、未だ存在しない現実に基づいた2ステップ先を見越した行動などできないのです。


2025年04月05日 (土) [AtCoder] 今日は AtCoder Beginner Contest 400 があった。3桁順位に入りたいよー。■A 問題 ABC400 Party。細かいことだしどうでもいいこだわりかもしれないけど、「テストして実行」よりも「実行してみて可否を見る」方が好み。テストと実行のあいだには無限の隔たりがあるから、テストの成功は必ずしも実行の成功を意味しない。これには鍵をかけたあとで鍵がかかっていることを確認する母の影響もあるかと思う。鍵をかけること(かけたつもり)と鍵がかかることのあいだにも隔たりがある。■B 問題 Sum of Geometric Series。一応まじめに考えようとしたんだけど、さっぱり頭が働かなかった。Ruby なのでオーバーフローを気にせずやるだけでいい。最大ケースでも TLE になる気配はなかった。あ、そうだ。なぜか今日起動した irb (1.6.2 on Ruby 3.2.2) はこれまでなかった補完と色分けが有効になっていて、極めて使いにくかった。なぜなのか。Ruby-1.8 で使っていた mp3info を Ruby-3.2 で使うために gem でインストールしたのだけど(単にコピペしただけではタグのセットはできても取得ができていなかった)、そのときに gem 自体にもアップデートがあるとお知らせされて gem のアップデートをしたというのが唯一関連がありそうな心当たり。なぜ関連があるかというと、ruby/bin/irb にこう書いてあったから。「This file was generated by RubyGems. The application 'irb' is installed as part of a gem」 だけどこのファイルが更新されていたわけではない。たぶん %USRPROFILE%\.irbrc に書き込むんだけど、どうやって色分けと補完を無効にするんだよ。……。IRB.conf[:USE_AUTOCOMPLETE] = falseIRB.conf[:USE_COLORIZE] = false を書き足して心の平穏を得た。俺は出しゃばりな機械を憎んでいる。■C 問題 2^a b^2。方針を定めるのが難しい。平方数を列挙したいと思ったけど、N の上限が 10 の 18 乗だからといって 10 の 9 乗までを列挙することはできない。それに b が 2 を含んでいるときに同じ良い整数を表す2通り以上の方法があって重複を除かなければいけない。そこで、b は 2 を含まない(奇数である)ということに決めてしまった。a を決め打ってから b の上限を二分探索で。■E 問題 Ringo's Favorite Numbers 3。扱う素数がいくつあるかをまず調べた。8万以下だった。定数倍が2分の1以下だとしても組み合わせを列挙すると2乗で厳しいなーとか考えていた。べつに厳しくはなかった。p^{2n}q^{2m}10^{12} を超えない範囲ですべての p^nq^m を列挙してソートしておいてから、2乗して A を超えない最大のものを二分探索で探した。サンプルの1ケース目が合わなくて困っていたのだけど、これは p^nq^n を列挙していたことが原因。p と q の指数は偶数であるという点が共通するだけで独立しているのに勝手に揃えてしまっていた。■D 問題 Takahashi the Wall Breaker。F と D を見比べて見込みがあるのは D だと思ったので一度飛ばした D に戻った。方針が立たなかったのだ。前蹴りしたはいいけど他の連結成分に合流できないケースの扱いに困っていた。それはどういう状態なのか。どの状態からやってきてどの状態へ移行するのか。どうやって現実的な時間で遷移を網羅できるのか。わからなかった。だけどグリッドの処理を書いているときに、前蹴り何回で現在のマスにいるのかを書き込んでいけばいいのだと気がついた。サンプルが有能で助かったんだけど、前蹴りで破壊される2マス目の扱いに罠がある。処理が重複する無駄があると TLE になるおそれがあるので、最短を更新したときだけ次の処理をキューに入れるのがお約束。ところが、前蹴り1マス目が最短を更新しなかったとしても、前蹴り2マス目は最短を更新することがある。前蹴りには向きがあるからこのようなことが起こる。だから前蹴り1マス目に関しては最短を更新しなかったとしても2マス目の処理を進めなければいけなかった。解けてみれば実装問題枠として置かれていたのだと思うけど、普通に考え込んでしまった。もともと大したことがなかった脳みその退行が著しい。悲しいね。自分がやっていたような精進というのは、問題に対するパターンマッチ、ヒューリスティクス、反射神経を鍛えているのであって、規模と速さにおいて決して敵わない AI に対して AI の土俵で戦いを挑む行為なのではないかと思ってしまう。自分は考えるという行為を未だ知らない。■■■Ruby の Integer.sqrt にバグが見つかっていた。「Bug #21217: Integer.sqrt produces wrong results even on input <= 1e18 - Ruby」 きっかけは ABC400 の C 問題らしい。提出 #64512377 (WA×2 / Ruby で C 問題最速の提出)。本番で絶対合ってるのに WA が出たら……かなりつらい。固執してペナルティを重ねるか、俺は間違ってないこれが違うならもう何もわからんと投げ出すというのが自分の典型的反応。


2025年04月04日 (金) トランプさんの関税。効率は悪くなっても国内で自給自足するぞということなのかなとか、グローバル企業から国家に主導権を取り戻すことにつながるのかなとか考えると、それは割と共感できるのだな。鎖国もお上も日本語にある言葉だし。物価が上昇しても国内で循環しているなら国単位で見て損はしていない。逆にいくら安いからといって外国から買うばかりでは国から富と仕事が流出している。それが嫌なんでしょう。バイデンさんがある部分ではそうしたように、次の大統領が今期のトランプさんから何を引き継ぐのかに興味がある。


2025年03月29日 (土) [AtCoder] 今日は AtCoder Beginner Contest 399 があった。精進の目途が立たないのでダメだったとだけ書く。まず D 問題が解けなかった。WA を重ねた末にランダム入力と愚直解でダメケースを探してデバッグをしたけど、提出するとそれでも WA が出る。根本的なところで勘違いをしていて愚直解が間違っているかと疑って問題とスクリプトを読み直すけど見つからない。お手上げ。次に E 問題が合わない。サンプルの4が親切でループがあるケースに手当てが必要だとわかるけど、それをやっても合わない。他に考えるべきことがあるのか実装が間違っているのか、どちらともわからない。お手上げ。■■■寝起きに思いついたんだけど、手当てができないケースを過剰に見積もっていたかもしれない。帰ってから試す。■WA が2個減ったけどまだだめ。■■■ループにしっぽがついてるものは1手損しないらしい。note で読んでしまった。たしかに、輪っかとしっぽの合流部分をしっぽの先に繋ぎかえれば損しない。十分に解けるチャンスはあったと思えるタイプの難しさであり、気持ちがいいくらいみごとにやられた(やられたくはない)。■F 問題はまあ、項数が増えたときに K 乗の増分がどうなるか、というのを管理して足していくんだろうなあと思うんだけど、やったんだけど、完成しません。


2025年03月26日 (水) 人生で去年初めてだったこと。指先の表面がかさかさとひび割れてシャツをなでると引っかかること。指紋に沿ってぱっくり開いたひび割れが痛いこと。指の関節の内側の表皮が折れ目に沿って割れていること。痛いのは1本だけなんだけど、これが毎年だったり、増えていったりすると、嫌だなあ。指は使うものだから、痛いか不便かのどちらかになる。テープで貼り合わせて開かないようにすると、痛くはならないけど指先の摩擦と感覚が失われて不便。


2025年03月25日 (火) [Win11] デスクトップにごみ箱だけを置いているとき、デスクトップに新規作成したファイルに名前を付けるとごみ箱の名前まで同じ名前になろうとして拒否されるということが起こっていた。今も起こる(24H2)。巻き込まれるのがごみ箱でなければそのまま同じ名前になる。複数のファイルを選んで同じ名前を付ける機能については知っている。拡張子が異なるなら同名で拡張子だけが異なるファイルになるし、拡張子が同じなら「name (N).ext」という連番が付与される機能。知っていると便利な機能だけど、なぜそれが暴発するのか。なぜできたてほやほやでまだ名前が確定していないファイルに名前を付けると巻き添えが発生するのか。名前をデフォルトの「新規 ファイルタイプ.拡張子」のまま Esc で確定してわかった。ファイル名が確定した瞬間に、デスクトップで最後にフォーカスを持っていた(しかし選択されてはいなかった)ファイルが新規作成したファイルと同時に選択された状態になるのだ。つまり、最後にフォーカスを持っていたが選択されてはいなかったアイコンは、ファイルが新規作成された瞬間になぜか選択されていたことにされ、新規作成されたファイルに名前を付けるということが同時にそのファイルの名前を変更することになっていた。フォーカスを持っているが選択されていないとはどういう状態か。ファイルが1つでも選択されていると右クリックメニューはそのファイルのものになる。だからデスクトップにファイルを新規作成したいときは、デスクトップフォルダの右クリックメニューを表示するためにファイルの選択を解除しなければいけない。そのために Ctrl+Space を押して選択状態を切り替える。それを理解していない者がいる。■単純にフォーカスリングの位置だけが影響しているわけではないみたい。Ctrl を押しながら矢印キーとスペースキーで任意のアイコンの選択状態をオンにしてオフにすることを繰り返してからファイルを新規作成すると、一度オンにした(そのあとで選択解除された)複数のアイコンが新規ファイルと同時に選択されていたことにされる。一度というのがいつを区切りとしたカウントなのかまったく理解できないけど、なんらかの履歴が存在していて悪影響を及ぼしているように見える。■新規作成したファイルが既存のアイコンを押しのけて配置されることがあるのも根は同じだと思うな。右クリックを起点とした操作しか想定していないんだろう。マウスやタッチは対象に触らずには操作することができないし、操作には必ず点の座標が伴う。マウス操作しか知らないと触られた結果を暗黙の前提にすることがマウス操作を前提にしていると気がつくことができない。■Windows Vista はこうではなかった(7以降は知らない)。という風に先月まで使っていた Vista を擁護しようとしたけど、Vista のデスクトップもあほなところがあった。新規作成したファイルが左上から縦に配置される(既存のアイコンを押しのけたりはしない)一方、Shift キーを使った線形選択では Z 字に選択範囲が拡大するのだった。そうするとデスクトップ右上に配置された注目外のクラスタが知らず選択されてしまう。だったら新規作成されるファイルも Z 字に配置するのが良かったと思うんだよなあ。11 はこれ以下だって言ってますよ。ていうか今書いた現象は 11 でも確認できたから、純粋に劣化が上乗せされている。


2025年03月23日 (日) [AtCoder] 今日は AtCoder Regular Contest 195 (Div.2) があった。配点は 4-5-6-7-9。3問解ければいいなあという配点。■A 問題 Twice Subsequence。他の人の解答を見ると、前から作った列と後ろから作った列を比較しているものが多かった。自分はというと、前から部分列を作りながら、もうひとつ、異なる選択をした場合の列(のうち最善のもの)を同時に作っていた。提出 #64134048 (AC)。二分探索があるからたぶん効率が悪い。■B 問題 Uniform Sum。まず A 数列と B 数列から -1 を取り除く。-1 の数の合計が、好きな和を作れる要素の数になる。だから -1 が A/B 合わせて N 以上あるなら答えは必ず Yes になる。M=N-(-1 の数)>0 として、M というのは A 数列と B 数列を組み合わせて同じ数を M 個以上作れたら答えが Yes になるという数字。和を固定したら A 数列と B 数列を組み合わせていくつその和を作れるかは線形時間で数えられる。でもその和の候補が N^2 通りあるなら全体は N^3 であり、N≦2000 だから3乗は通らない。TLE×38TLE×12。通らないのはわかっていたけど終了時刻が迫っていたのです。終了後に A 数列と B 数列の組み合わせを全列挙する解答を考えた。全列挙は2乗なので許されている。列挙した和を集計して最も多く作れる和を選ぶだけ! 提出 #64144851 (AC)。22 行目の集計部分がちょーっと複雑で長いけどちょっとだけ! なんでわざわざ下手な数え方をして TLE を出していたのか不思議だね。あとサンプル3が親切に教えてくれるけど、和は A 数列の最大値と B 数列の最大値と同じかそれより大きくないといけないという条件があるので、フィルタリングを忘れない。■C 問題 Hamiltonian Pieces。赤い駒も青い駒も4を単位として輪っかが作れる。だから4で割った余りをどう組み合わせるか、16 通りの場合分けをがんばった。WA×23WA×13AC。■■■B 問題で和の集計について何をごまかしたかを書く。A 数列に2が2つ、B 数列に3が3つあるとき、直積で列挙した和には5が6個現れる。実際に作れるのは2と3の少ない方である2個だけ。これに対処するためにまずは2つの2を (2,2)、3つの3を (3,3) と集計したあとで直積を列挙した。得られる要素は ((2,2),(3,3)) であり、5が2個作れることがわかる。和として5になるものは他に ((1,x),(4,y)) などが考えられるけど、和を1つ選ぶとき、(2,2) と (1,x) が実はペアを変えただけの A 数列の同じ要素の再利用だったり、(3,3) と (4,y) が B 数列の同じ要素の再利用だったりすることはないので、問題は解決している。そういうことを 20 から 22 行目でやっていた(tally, product, group_by とか sum{ min } とかで)。


2025年03月22日 (土) [AtCoder] 今日はユニークビジョンプログラミングコンテスト2025 春(ABC398)があった。F はローリングハッシュもしくは z-algorithm を知っていますかというだけの問題。私は z-algorithm が理解できないので知りません。E 問題が難しくて解けなかった。制約が小さいからとにかく先読みして有利な手を選べばいいのかなと思ったけど、それも難しかった。そして終了後に Ruby の提出一覧を眺めていて驚いたことに、自分が C 問題で WA を出していた。えっ、再提出した覚えがないんですが。C 問題で WA を出していたことに気づかずに 300 点を失っていたのだった。いつも B 問題を提出するときに A の AC を、C 問題を提出するときに B の AC を確認するんだけど、D 問題を提出したあとの提出一覧に黄色い WA があることに気が付かないって、どんだけ D 問題で余裕を失っていたかってことだ(D に 30 分かけました。そしてたぶん E 問題を読まずにリロードしながらジャッジの進捗を注視していたと思う。自信がなかったから。1行下の異変に気が付かないって、どんだけ視野が狭くなっていたのやら)。だけどね、終了後に考えてみても WA×1 の原因がわからないんだから、ケアレスミスだとは言えない。ジャッジサーバーが一瞬だけ狂って判定ミスをしたんだと信じてる。今日は太陽風が強い日だった(大嘘)。■■■C 問題。朝ごはんを食べているときに気が付いてしまった。数値化をサボっていたために文字列の中から最大値を探していた。Windows Explorer はファイル名でソートするとき数値部分の桁数の違いを0埋めされているかのようにいいように解釈してくれるけど、普通は文字列の "100" と "9" を比較したら "100" が前に来る。よくそれで1つ以外 AC になったものだ。提出 #64130280 (AC)。差分は1行目のみ。■精進。E 問題。二部グラフだって他所で読んでしまった。提出 #64130692 (AC)。実装することに意味はない。問題の構造を見抜けなければいけない。