/ 最近 .rdf 追記 設定 本棚

脳log[2025-10-16~]



2025年10月16日 (木) ワンタイムパスワード離れが世界で進む、証券口座乗っ取りで多要素認証に脚光 | 日経クロステック(xTECH)」■記事の内容はまともっぽいけど見出しがワンタイムパスワードもパスワードに加えた2要素目であり多要素認証の一種だということを反映しておらず嘘になっている。意味のある区別を伝えていない。最近はよく知らないパスキーというのを見かけるので自分の理解を。多要素認証であってもワンタイムパスワードはフィッシングに弱い。何要素あっても本人が正しい認証キーを偽の、フィッシングサイトに入力するからそれを中継することで認証を突破されてしまう。グーグルがスマホに送ってくる確認メッセージも、それが何に対する確認なのかをタイミングで判断するからログイン操作を中継されるとフィッシングサイトにアクセスを許してしまう。パスキーは使ったことがないけど、Windows や Android が PC やスマホのユーザー認証によって Web サイトの認証を代行し、入力先の検証も人間がアドレスバーを見て判断するのでなく機械が自動で入力先とパスワード(※異議は後半を読んでから)のマッチングを行うのかなと理解している。それだったらインターネットブラウザのパスワードマネージャーでも同じことができていると思うので自分がパスキーを使う理由はまだない。■ブラウザのパスワードマネージャーの脆弱性にこんなのがあるらしい。「約4,000万以上のパスワードマネージャー ブラウザ拡張機能で機密情報が漏洩する脆弱性|セキュリティとITのニュース-セキュリティ対策Lab」。記事によればパスキーなら問題なしとなるわけではない。最近のブラウザはユーザーの1クリックなしではパスワードの自動入力を行わないけど、不可視のパスワード要素とクリックを誘発する広告などでユーザーに意図とは異なるクリックをさせてパスワードを補完してから外部のサーバーに送信することでパスワードを窃取するという。スクリプトで DOM を操作するので XSS とかブラウザ拡張によって可能になる手段。パスワードなるものの送信先を現在窓口になっている(アドレスバーに表示されている)ドメインに限ることで困らないんじゃないの思ったけど、「シングルサインオン」機能が死ぬからできなかったりしそう。認証に専用のドメインとサーバーを用意したいですか。とりあえず今の理解ではパスキーはいらずブラウザのパスワードマネージャーで十分なのかなと思っている。パスキーならではの利点ってなんだろ。■検索しました。「iOS・Androidも対応「パスキー」とはなにか? パスワード時代の終焉 - Impress Watch」。パスワードの代わりに鍵のペアを使用することと、ユーザー端末間で鍵の同期ができることがパスキーの利点らしい。弱いパスワードを使うより安全だし、強いパスワードを用意する面倒がないし、いちブラウザのパスワードマネージャーに閉じるよりも便利。なるほどなあ。ところで自分がパスキーに感じたことのある違和感というかかすかな不安は、自分が認証情報を管理していないというところにある。機械(自分のデバイス)にお任せは大いに結構だとしても、Google や Apple や Microsoft といった大きな存在にお任せしておけば万事オーケーですよという仕組みでは素直にうなずけない。Google アカウントも Apple ID も Microsoft アカウントも持っていないので、やっぱりパスキーはまだいらないな、ならではの利点はないなという判断になる。■サービスの旧ドメインに立てられたフィッシングサイトがサービスの新ドメインに認証情報を中継することを防ぐ仕組みはなんだろう。サーバー証明書? それの何で判断するんだろう。証明書を更新するだけで過去の認証状態がクリアされると不便だし、人間ならアドレスバーに表示される企業名で判断している……と思ったけど、「運営者 検証され信頼できる運営者情報はありません」にもかかわらず「安全な接続 このサイトとの接続は安全です。認証局: DigiCert Inc」って表示されるな。誰も接続先の確かさには興味がないまま無責任なことを言っているみたい。ユーザーが無事に新ドメインにアクセスしたときも、ユーザーが認証情報を管理していないのだからどうすることになってるんだろう。■ユーザーがパスキーを管理する例。「パスワードの代わりにパスキーでログインする - Google アカウント ヘルプ」のページに「パスキーを削除 / オプトアウトする パスキーを作成したデバイスを紛失したり、共有デバイスでパスキーを誤って作成したりした場合は、Google アカウントで使用するパスキーを無効にする必要があります」とあって、Google アカウントでの操作が案内されている。それで紛失したデバイスや共有デバイスからのアクセスをブロックできるとしたら二段階認証の段階で可能なことに思える。逆にそうでないとパスキーとは盗聴のための仕組みなのかと、自分が関知しない通信をどこへどれだけ行っているのかと疑う。パスキーはあくまでも1要素目(パスワード)の代替ということでよろしい? そしてやっぱり思うのは、認証情報のデバイスをまたいだ一元管理とオンライン同期は別の話であって、Google に一元管理させる一手はない。管理主体は自分自身以外ありえないし、それができない仕組みなら欠陥がある。■第三のサーバー。「パスキーの仕組み・設定方法・注意点などを知る (キヤノンMJ セキュリティ on ASCI)」。自分はこのページの図の9番に対応した FIDO サーバーの存在を認知していなかった。現在のパスワード認証でも外部のサーバー(Google、Apple、Yahoo とか)に当たり前のように認証を投げていて、口座情報や住所を押さえていて自分にとってよりクリティカルな地位を占めているサービスが第三者のお墨付きを鵜呑みにするのでいいのかと思わないではないし利用しないんだけど、してみるとパスキーはこれの延長上にあると見える。クレジットカードもそうだけど、無駄にプレイヤーが増えて事態が複雑になりコントロールが容易に自分の手から離れていく状況は避けたいと思っている。便利さならシンプルさのために捨てていい。次から次へと、未だパスキーの全貌が把握できたと思えないので、自分がパスキーを使うのはまだ早い。一見安全だろうが一見便利だろうがよくわからないコントロールできない長いものに巻かれたくはない。


2025年10月15日 (水) 10 年以上前に iPhone のホームボタンシール(立体丸形)を買ったことがある。たとえば青色 LED がまぶしすぎるモニタのフラットな電源ボタン(丸)に貼って透過率を下げる。おとついの日記(20251013)を踏まえるとこれは 16 年ちょっと前の話で、これが最初の使用例だった。たとえば USB 端子が中央からやや外れた位置にあって位置決めが難しい電子書籍端末の表面に目印として貼る。BOOX Max2 は物理ボタンあり額縁ありなので貼る場所には困らない。最近では電源マークが青色に光って浮き出るミニ PC のフラットな電源ボタン(角)に貼った。散乱する青色光を抑えるだけでなく、軽すぎて本体が動いてしまうところをピンポイントでボタンだけ押さえるためにでっぱりが役に立つ。5、6種類の柄が入っていたのがもうなくなりそうなんだけど、同じようなのを探すのが難しくなったなあという話。


2025年10月13日 (月) ポインティングデバイスに Logicool の TM-150 を使っている。2009 年から 17 年目。きっかけを考えると 2009 年頃に WUXGA のモニタを使い始めたはずで、たしかに MDT243WG も 17 年目だった。話がそれている。デフォルトでは進むが割り当てられている小さいボタンの1つを W10Wheel.NET というソフトウェアでホイール操作に割り当て直しているのだけど、ここのところホイールの動作が安定しなかった。押しているあいだはポインタの移動がホイールの操作に置き換えられるはずなのに、ホイールの操作が途切れがちだった。またスイッチの分解清掃が必要なのかなと思って開けたところ、スイッチを指で直接押したときにはきっちりボールの回転がホイールの操作に変換されているようだった。今回はスイッチが取り付けられている基板の固定が甘くなっていたのが原因で、スイッチを押した状態が維持できていなかったのだった。基板の後ろにやや厚めの紙(具体的には 3M の白い両面テープ)をあてがってガタを解消した今は快調。こういうこともある。■一時期再販されていた時期もあるらしいのだけど、知らないうちに販売が再開していて知らないうちに販売が終了してしまっていたのだよね。何度目かの再販を待っています。予備機の用意がないのです。右利きだけどキーボードの左に置いて使っています。他の形は受け付けません。


2025年10月12日 (日) [AtCoder] 今日は AtCoder Regular Contest 208 (Div. 2) があった。前回の ARC (Div.2) があったときは緑に落ちていたので Unrated で参加したが、今日は水色なので Rated で参加した。配点が 5-6-7-7-11 なので、欲張れば2問解きたいところだけど、1問も解けない可能性も十分にある。■A 問題「Bitwise OR Game」。Nim とか Grundy 数とか理解できないんです。どう落とし込むかを考えるところにすら立てない。■B 問題「Sum of Mod」。最初は mod の左右の項を取り違えていた。同じか小さい数で、同じか大きい数の mod を取るのが正しい。前の項にいくつプラスしたかの合計を K にしたいが、前の項の大きさマイナス1までしかプラスできない。前の項が小さすぎると、プラスできる上限が低くて、結果として数列の長さが伸びる。早く +K を達成してしまった後は同じ値を並べて項数を水増ししつつ末尾の項の値を増やさないでいられるので、問題はどれだけ遅く N 項以内で +K を達成できるかに限られる。そしてそれは初項の大きさのみに依存する。二分探索で。■C 問題「Mod of XOR」。結果を書くと、3通りの方法で答えの候補を探し、該当がなければなしと判断した。n^C mod n = X とはどういう意味か。とりあえず X<n が必要だけど、これは別に答えを規定しない。n^C が n より小さくなるとき、n^C = X であり、n = X^C。これが答えの候補の1つ。では n^C が n より大きくなるとき、n^C = n+X であり(本当? n+n+X は? 知らない)、当然のこと X<=C であるはず。X<C の場合は知らず X==C のときはテキトーに大きなフルビットの数((1<<31)-1 とか)^X が答えの候補になる。これが2番目。これが ABC の問題や 300 点 400 点の問題ならもう提出してしまうけど、700 点なのでまだ手を尽くす。数ビット程度のランダムケースと愚直解を眺めていると、他にも答えの候補があるが見つけられていないとわかる。いくつかのケースでどうすれば C と X から N が導き出せるかビット列をずーっと眺めていたら、C-X が偶数のとき、つまりこれが X<C のケースなのか、(C-X)/2 にテキトーに大きなビットを補ったものが答えの候補になるらしかった((1<<30)+(C-X)/2 とか)。これが3番目。残り時間が5分だったので時間切れにならないように注意しながら数分を使って愚直解と答えを突き合わせてももう未知の答えはないらしかったので提出して AC だった。A 問題が全く望み薄だったおかげで B と C に使う時間が十分に確保できたのが良かった。■コンテスト成績証。1803 の青パフォでした。


2025年10月11日 (土) [AtCoder] 今日はパナソニックグループ プログラミングコンテスト2025(ABC427)があった。■A 問題「ABC -> AC」。前半と後半に分けて出力した。■B 問題「Sum of Digits Sequence」。Ruby なら .digits.sum で桁和が求まるので A_N まで求める。違います。f(A_N-1) まで求めたら A_N がわかる。■C 問題「Bipartize」。N の制約が小さいので最初に頂点の白黒を決めてから辺の要否を確かめる。辺のないグラフは二部グラフなのかなと不安になって閉じられていた用語解説を開いた(二部グラフだった)。■D 問題「The Simple Game」。行き止まりの場合は K 回の操作前でもその頂点に書いてある文字が勝敗を決めるのかなと思ったけど、「各頂点の出次数が1以上」というのは行き止まりがないという意味だった。構造がよくわからないままメモ化再帰でがんばった。■F 問題「Not Adjacent」。E 問題と点差が 25 点しかないなら点数の高い方を解かない理由がない。解けるも解けないもどれだけ時間がかかるかもほぼ同じだと仮定すればね。直前の要素を使った場合と使っていない場合の2種類に分けて DP をするのだと思った。提出 #70054346 (TLE×31/AC×22)。21 分かけて完成したものが TLE だった。答えを出すのにいっぱいいっぱいで高速化のアイデアはないので E 問題に行った。E 問題を 21 分で通してから戻ってきたら残り 10 分で、最大ケースを書いて進捗を表示してみたら半分くらいまではまともな時間で動いているようだった。半分全列挙だな。と思ってコンテスト終了前後に3回提出したけど、どれも WA だった (#70062539#70064082#70064700)。この日記を書いている最中にひらめいて提出した4個目でやっと AC (#70067158)。3回も何をしていたかというと前半後半のマージをするのに2×2の組み合わせの何が有効で何が無効かを判断しなければいけないのだけど、有効にしすぎ、無効にしすぎ、ちょうどいいという変遷をたどっていた。ちょうどいいのに WA になっていた原因はというと、DP をする順番に意味があるのです。ただ個数を半分にするのではいけない。前半は前から DP をし、後半は後ろから DP をすることで、最後に両者をマージしたときに正しい答えが出る。「A の(連続するとは限らない)部分列」についての問題を解いているなんてことはもうとっくに頭の中から抜けているので順序が大事だということにきづかない。ちなみに、一方の値が 0 のときにもう一方にある M の倍数を作るペアが M-0 ではなく 0 (=(M-0)%M) だという罠にははまらなかった。これが初めてというわけではないので。■E 問題「Wind Cleaning」。144 ビットでグリッドを表現して BFS をしたけど、これは Ruby に甘えていたのかも。128 ビットに収まっていたなら C++ でも書けたと言い訳できるけど。上下左右への移動をいざ書いてみたら思いのほか簡単に、シフトしてからマスクとのアンドを取るだけで移動後のグリッドが得られた。提出まで 21 分。■点数にならなかった F 問題への寄り道で E 問題の AC が 20 分遅れたにもかかわらず 1509 パフォが出ていることに驚いている。コンテスト成績証。AI 新ルールによる追い風が絶大では?


2025年10月10日 (金) まんがタイムきららって雲母にゆかりがありますか? あまりに遠すぎてまったく想像しなかったけど、きららはうんもなのだな。どちらかというとキラキラとかキキララの方がよっぽど印象が近い。ATOK できららを変換すると熊本県宇城市松橋町きららが出てきた。すてき地名。


2025年10月04日 (土) [AtCoder] 精進。今日あった ABC426-F「Clearance」。どうやったら効率的に処理できるかいろいろ考えた。主に BIT とセグメント木をどう使うかを。遅延セグメント木で範囲減算をしながら値が負になる要素をトラップして都合良く扱えるだろうか。できそうになかった。商品ごとに要求量を BIT に積み上げていったらどのクエリまでなら在庫が足りるかがわかるだろうか。わかる。しかしここで商品ごとに足りないクエリを個別処理することは Q×N になっていけない。エンコードした在庫を BIT に乗せたら範囲和を取得したあとでクエリに固有の値を divmod 演算で取り出せないだろうか。足してから余りを取るのでなく余りを取ってから足さないといけないのでできない。それに値が大きくなりすぎる。じゃあ商品在庫が何クエリ分あるかを BIT に乗せたら……それでうまくやれるなら最初から素直に個数単位の在庫を BIT に乗せてやれるはずなのでできない。(単位はともかく)在庫を BIT に乗せるのでなく在庫が足りるか足りないかの二値を BIT に乗せるようにしたら……うまくいった。クエリに沿って在庫の有無を更新していく。要求量が k で十分な在庫がある商品が範囲内に c 種類あるなら、k*c 個の商品が買える。要求量に満たない端数は予め処理しておける。■提出 #69886664 (AC / 1693 Byte / 1813 ms)。長さが N だったり Q だったりする BIT が2本(※3本目はいつのまにかいらなくなっていたものの消し忘れ)と、同じような長さで入出力用とは別に配列を3本使っていることからわかるように、とてもたいへんだった。問題を縦に見て横に見て最後にまた縦に見てやっと答えが出る。■■■ABCD4完で水色に戻っていてびっくりした。前回までの ABC なら間違いなく 1100 台の緑パフォでしたよ。だって自分は何も変わっておらず(最近すっかり定着してしまった冴えないパフォーマンスしか発揮できておらず)、直近の8回中7回が 1000 から 1100 台の緑パフォだったんだから、今回も同等のパフォーマンスが出るのが当然だった。■解説を読んだら遅延セグメント木だった。負になる要素はトラップできるし、トラップした後はテキトーに大きい値を設定することで以降は無視できる。在庫切れ商品がどこにあるかは別途 BIT でもセグメント木ででも管理する。できそうにないと思ったことが実はできるらしかった。■提出 #69913286 (TLE×24/AC×14)。F 問題想定解法。予想はしてた。BIT で間に合うところはセグメント木より軽い BIT を使ったのだけど、5秒あってもあかんねんて。これが通るならかなり素直に貼るだけやるだけの問題になるんだけどな。セグメント木には最小値と最小値の位置とセグメントの幅を持たせた。幅1のセグメントにおける最小値というのはある商品の在庫そのものなので別に値を持つ必要がない。そして最小値の位置を記録しているので在庫が負になった商品がすぐにわかる。■■■G 問題「Range Knapsack Query」。kotatsugame さんの動画を見ました (「【競技プログラミング】ABC426【実況】 - YouTube」)。区間を区切って予め済ませておいた DP 結果をマージするというのは自分でも考えていた。テーブルのマージが C の2乗でも2つの結果をマージするときに (重み)=C となる結果を得るだけなら正順と逆順の結果を1対1対応させる線形時間で済ませられることもわかっていた。しかし区間の区切り方としてセグメント木を想定するとしても Sparse Table を想定するとしてもテーブルのマージは対数回発生するので2乗のマージを繰り返すしかない。動画を見て Disjoint Sparse Table について初めて名前を聞きました(「Disjoint Sparse Table [いかたこのたこつぼ]」)。そんなうまい話があるんですなあ。ちなみにアイテムの重みを低く抑えたランダムな最大ケースでローカルでは十数秒かかりました。事前に CNlogN (<150メガ) かかり、クエリに QC (≦100メガ) かかるので、Ruby には桁が1つ以上大きすぎる。それでいて5秒制限でもなんでもない2秒制限なのだ。解説 によると「全体の計算量は O(K(Q+NlogN)) です」「K=maxC_i」とのことなので、想定通りの計算量でこの時間らしい。1桁か2桁限定された制約に対して8割くらいの部分点が与えられたら受け入れやすいのにな。


2025年10月03日 (金) [AtCoder] 「生成AIの技術向上に伴うABC,ARC,AGCにおけるルール変更について - AtCoder」「AtCoder生成AI対策ルール - 20251003版 - AtCoderInfo」■この前の AGC の C 問題が解かれたらしく、とうとう ABC/ARC に加えて AGC も規制の対象になり、規制の内容もこれまでは許容されていた Copilot がダメだし、コーディング言語の変換(Python → C++ など)も、指示に従わずに(ないものを)生成するケースがあるらしく禁止。Web 検索で勝手に表示される AI による回答も見てはいけないとか。一番最初のルールではたしか問題文のコピペ丸投げこそ禁止されていたけど自分の言葉で AI に相談することは許容されていたはずで、でもそんなのはとっくに禁止されている。実効性を持たせられない規制に消極的な姿勢があると思っていたけど、建前だけでも禁止は禁止に。ずるをすることのアドバンテージが増えないかはちょっと心配。AI の性能や使い方を競う場ではなく人間が競う場であろうとすることは自分の希望に添っている。AI によるアシストは事前の学習に役立てるのがいいだろう。■自分についていえば、コンテスト中に検索して見つけたものをすぐに反映させられるほど器用ではないので、検索するというと「2点を通る直線」「直線の交差判定」「素数表 ビット」ぐらいでほぼ検索しない。エディタはただのテキストエディタだし、勝手に改行したりインデントを揃えたりされるのも許せない(たち)なので、整形をはじめ許容されているタイプの補完(IntelliSense)とも禁止された補完(Copilot)とも縁がない。「普段のコンテスト参加スタイル(20230505)」。これでいい成績が出せているなら誰にも何も言わせないでいられるかもしれませんけどね、お前は利用できるものはすべて利用して成績を上げるべきではないのか? 思うんだけど、目的指向で行動を計画できることも、損得勘定で行動を選べることさえも、どちらも得がたい才能ですよ。俺は持ってない。ネットの掃きだめでは行動の理由に金銭を当てはめる発言を見かけることがままあるけども(「それをやるだけのお金をもらっていないのでは」「そうはいってもお金だけはたんまりもらっているのでしょう」)、そんなに簡単そうにお金で自分を曲げられるものかと、お金がすべての無理を引っ込めるのかと信じられないでいる。話がずれている。自分は結果を求めて問題を解いていないし、観察すれば成績をあげるために行動しているようには見えない。どのレートにいても簡単すぎず難しすぎない問題を解くことで気持ち良くなることができる。それで満足しているように見える。


2025年10月02日 (木) スズキの新型400cc『DR-Z4S』『DR-Z4SM』ついに発売! 価格は119万9000円 | レスポンス(Response.jp)」■さすがのスズキでも 100 万は切れなかったらしい(一方、KTM は……「新型スズキ『DR-Z』のライバル登場か!? KTMの新型スーパーモト発表に「思ったより安い」など熱視線 | レスポンス(Response.jp)」)。海外での価格を円換算したら 130 万円台だったらしいから努力の跡は見える。


2025年09月30日 (火) 初耳単語2つ。添え乳(そえぢ)。貰い乳(もらいぢ/もらいぢち/もらいちち)。乳を単にチと読むのはそういえば乳飲み子(ちのみご)もそうだった。あれ、乳首(ちくび)もそうか。乳(ちち)というとき自分は白い液体とそれを分泌する胸部を区別してないけど、本来は液体の方だよなーと思って辞書を引くと、(1)が液体で(2)が胸部で予想通り。そこから(3)旗・幕・羽織などの縁につけた、竿やひもを通すための小さな輪、(4)釣鐘の表面にある、いぼ状の突起、と続くのが予想外。(3)に関連しそうな乳環という単語は見たことあるなと思ったけど、これはカーサスの乳環というダークソウル3に出てくる指輪の名称だった。乳環からのつながりで貫乳(カンニュウ。陶磁器の釉(うわぐすり)の表面に現れた細かいひび)と乾乳(カラチチ。乳汁の出ない乳房。また、その女)を発見した。乳という文字が喚起する全体像を自分はまだまだ知らない。


2025年09月21日 (日) [AtCoder] 精進。昨日あった AtCoder × Engineer Guild オンサイトコンテスト ~集結!高レート人材~予選(ABC424)-E「Cut in Half」。K と X の上限の高さに対処する問題。問題に二等分と書いてあるからじゃないけど二分探索を考えた。何を? たとえば長さの上限を探索するとしたら……Ai を何回二等分する必要があるかがわかって、何回倍々に本数が増えるかがわかるので、増えた本数の総数が N+K を超えたかどうかで判断できる。ところで、倍々はビットシフトで計算できるけど半分半分を右シフトでやると小数部分が計算できない。右シフトして消えたはずの部分も固定小数点数みたいに保持したらソートできるかなと考えたりもしたけど、答えが小数なのだから半分半分は小数で計算することにした。自分の解答で探索する上限がストレートに長さの上限(小数)ではなくビット長の上限なのは、思考の回り道の名残か。小数を引数にした2の累乗が普通に計算できると知らなかったことも理由にある。■提出 #69507299 (WA×21/AC×15)。時間内の提出は WA だった。ミスが2つある。■提出 #69515602 (WA×2/AC×34)。1つ目のミスを修正したら WA が2つまで減った。差分は何か。倍々に増えていく棒がぎりぎり N+K を超えないボーダーを探索したあと、ちょうど N+K 本になるように長い棒から半分にしていくシミュレーション部分で慎重さを欠いていた。同じ長さの棒について何本まで折るかという判断をせずに全部折るか全部折らないかで判断していた。ちょっとくらい N+K 本を超えてもええやろの精神。あとで X 番目を数えるのだからダメです。■提出 #69515755 (AC)。2つ目のミスを修正したら AC。18 行目に長さ a の棒を半分半分にして倍々になった本数をカウントする処理があるけど、a よりも探索した上限が大きい場合は手を加えずそのままの a を1本計上するのが正しい。ビットシフトで計算する本数にはシフト数が負にならないようにリミットがかけられていたけど、a の値を増やしてしまうかのような逆二分割を防ぐリミットがなかった。こんなんでは D 問題に費やして無駄になった1時間があっても時間内に AC できたかは怪しい。■提出 #69518302 (AC / 2000 ms)。一番最初に考えたプライオリティキューを使ったシミュレーションは K の大きさを見てすぐに捨てたのだけど、実は倍々で増えていく同じ長さの棒をまとめて操作できるので K の大きさはそれほど問題ではなかったのだった。これは 10 分で書けてバグもなかった。しかし実行時間が2秒ピッタリ! 制限時間は長めの3秒かなと確かめてみたら2秒! プライオリティキューにソート済みの配列を渡して初期化しているのだけど、これが空のキューに1つずつ追加していくようになっていたら間違いなく TLE だったね。Ruby だと想定解法が通らない通っても記述の違い定数倍の違いでふるいにかけられる最近の AtCoder の制約は今回も精度が高い。高精度で確実に Ruby を締め出してくる。何が想定解法かこの E 問題に関しては知りませんが。■■■F 問題「Adding Chords」。セグメント木だと見かけたので何を乗せるのか考えた。提出 #69576332 (AC / 533 Byte / 812 ms)。使ったのは BIT。線分同士の関係は何が許容されているか。交差はダメ。隣接と包含は OK。1本の線分は円を左右2つの領域に分ける。領域の境界をまたぐように新たな線分を引くことができない。しかし同一領域内に新たな線分を引くことはできる。2本の線分が作る4個の領域の関係は? 一方が一方を含んでいるか交わらないかのどちらか。BIT で領域のスタックを管理する。新しく線分を引きたいとき、始点と終点の土台が構成を同じくする領域のスタックであれば既存の線分と交差なく線が引ける。領域をどのように表現し重なり合った構成を区別するか。1領域に1ビットを割り当てるとあらゆる重なりが区別できるけど、N ビットは大きすぎる。大きな素数で割った余りを領域の ID とし、(領域 A)+(領域 B) が (領域 C)+(領域 D) とたまたま一致する偶然が起こらないことに期待した。前々回の ABC422-E「Colinear」に関連して「確率的な操作を書いたことがない」と書いたけどあれは嘘だ。ローリングハッシュを2回くらい書いて提出したことがある (z-algorithm が理解できないので必ずロリハになる)。


2025年09月19日 (金) 「大動脈解離」と言う病気を、専門医が子どもから医師まで5段階に分けて140文字以内で説明した投稿が分かりやすい - Togetter [トゥギャッター]」■初めて名前以外の具体的なことを聞きました。剥がれる裂けるって何が? 3層ある血管の最も内側が裂けて内側の外側に血が流れ込んでいる状態。最も内側の血管壁がダメージを受けている。その結果1層減った2層で血圧に耐えていて(中膜が2層に裂けると書いてあるから 1.5 層かも)、血管から血が噴き出すまでのカウントダウンが進んでいる。また、変なところに流れ込んだせいで主要な枝への血流がバイパスされれば臓器が死にかけている。3つ目の致死要因である心タンポナーデというのは心臓を包む膜の中にたまった液体が心臓の働きを阻害している状態らしいが、大動脈解離からどう繋がるのかはまだイメージできていない(どこからどのように流れ込むのか、すでに破滅が訪れた後というわけではないのでしょう?)。A 型って何? 解離の部位によって深刻度がかなり違う。上行大動脈がスタンフォード A 型で下行大動脈がスタンフォード B 型。上行というのは左心室から出てすぐの頭の方に向かっている部分のことで、下行というのはそこから折り返したあとの胸部腹部にある部分のことらしい。心臓に近い A 型がより起こりやすくより深刻だというのは負荷を考えればまあそうか。まず半数以上が生きて病院にたどり着かないし、治療が遅れると遅れただけ、1 時間に 1 % ずつ2日(48時間)で半分が死ぬ。こちらのページも参考にした。「大動脈解離が起こるとその生存率は?(前編) - 高齢者の病気いろは」 とにかく手術をして血管を補強するのが A 型で、B 型はまずは内科的治療が主だとか。


2025年09月18日 (木) 自分の(初&現)スマホが Xperia 10 (初代) なので。「ニュースリリース | 「即撮りボタン」を搭載したスマートフォン『Xperia 10 VII』を商品化」■ニュースサイトを見てからリリースまでさかのぼっても同じ表現で困惑しているのだけど、「発売されたタイミングから起算して最大4回、最新OSへのバージョンアップが適用されます。適用回数は購入タイミングによって異なります。 」が意味わからん。後半はわかるよ、買うのが発売後しばらく経ってからだと購入時点ですでにアップデート済みだったりするのでしょう。わからないのが「最大4回」の部分。これは何も保証してないよね。「6年間のセキュリティアップデート※8と最大4回のOSバージョンアップ※9に対応し、長く愛用できます」とあるけど、アップデート回数の上限を定めることと長く使えることが繋がらない。好意的に不確かな解釈をするなら、6年間セキュリティアップデートをします、その間に OS アップデートがあれば4回までに限って対応します、ともかく6年間は安心して使用できる環境を提供します、という意味なのかなと思うけど、不確かだ。だって6年間はセキュリティアップデートに関する言及であって、OS アップデートへの言及ではないからだ(注を読めば何が何を修飾しているか区別がはっきりする)。1年目に OS アップデートがあってそれに対応しなくてもリリースは嘘にならない。最大4回は3回や2回や1回はもちろん0回も含むのだから。「最大4回」と宣言されてもこちらとしては何の意味もなさない。後でアップデートをサボったときの言い訳に使えるというそちら側にとっての意味しかない。それが本意ではないなら日本語と論理を学んでくれ。■「※8 発売されたタイミングから起算して最長6年間、セキュリティアップデートが適用されます」 あらためて読めばセキュリティアップデートも最短6年間が保証されているわけではなかったな。最長6年と言わず最長100年とはったりを効かせてくれても意味がないという点で変わりがないので全然かまわへんかってんで。こちらにとって有益な意味を込めたのなら、伝わるように日本語と論理を学んでくれ。勝手に都合のいいように解釈したら詐欺に遭うのが今の世の中だ。