/ 最近 .rdf 追記 設定 本棚

log[2021-09-19]



20210919()

最終更: 2021-09-23T19:26+0900

[AtCoder] AtCoder Regular Contest 126

昨日の ABC に続いて今日は ARC があった

昨日と同じく ABC の3完(+2WA)24 時終了でもう 27 時になりそうだけどまだ結果が出ない……(水色に戻れたの?どうなの)

 A 問題 Make 10

脳内で組み合わせを全探索して優先順位を付けて貪欲法で>提出 #25984785

 B 問題 Cross-free Matching

LIS が見えていなかったせいで配列に対して insert/delete_at を繰り返す効率の悪い実装になったけど通るは通った>提出 #25988002 (911 ms)

LIS ではないこの解答の形Shortest Path on a Line」と「蛍光灯で書いていた>20200826p02

LIS にすると倍以上速くなってこう>提出 #26015260 (440 ms)

 C 問題 Maximize GCD

最初にサンプルの3にだけ答えを返すように if で処理を分けたそうすると残りのケースで K の高すぎる上限を気にかける必要がない

次に GCD について砂で隙間を埋めるように1ずつの操作ができるとなるとGCD が取り得る値について A 数列の素因数から推測できることは何もないような気がしてくるゃあ探索しますか?

  1. 考えてる途中でなぜか +1 の他に -1 の操作もできるつもりになっていて WA>提出 #25992664
  2. -1 の操作に対応した部分を削除して AC>提出 #25993948 (1248 ms)
  3. C 問題も B 問題同様制約と入力がガチガチに厳しくないのに助けられている余分な log を削って 943 ms>提出 #26017330

どうもねN 回のループの中身を対数時間の処理にするということがN^2 のループに対する高速化だという意識が強すぎてN 回のループで前処理をして N 回の本番ループを定数時間で済ませる方が速いという感覚が持てないN が2×N になってもオーダーは変わらないけどープを2本に増やすことに無意識の抵抗があるらしい

 D 問題 Pure Straight

っていた 20 分で愚直解だけ>提出 #25995534

RETLE の背後に WA が隠れている可能性がないではないがShift and Inversionsでやったようにうまい遷移とそれと省略を見つけて高速化すればいいのかなと


20210918() [AtCoder] 精進ARC065-D連結( diff)出力部の直前4行の集計部分がキモ>提出 #25899408必要なのは数だけであって具体的な組み合わせを明らかにする時間的余裕は制約により与えられていない結果だけ見ればシンプルだけどけっこう考え込んだよ[AtCoder] 今日はサイシドプログラミングコンテ2021 (ABC219)ったABC の3完(+2WA)で大爆死の回DP っぽい DStrange Lunchboxが解けなかったRuby での AC はコンテト終了直後の時点でゼロだわからんEMoatは盤面が 4×4 なんだからどうとでも処理できるマス目ごとに堀の内部か外部かを決めて総当たりしても高々 65536 通りそこから堀の内部が一塊になっていないものを除外するつまり堀の内部が連結ではない場合と堀の内部の内部に堀の外部が島になっている場合を除外する盤面が小さいから横着して添字をベタ書きしたでも時間内に書ききれなかった終了後に AC>提出 #25962480ーんD 問題もできた>提出 #25964674うんdiff なのもうなずける普通の DPった同じ形を書いたことがあるしすらすら書けてバグも明らかなものがひとつだけ(popshift の取り違え)だけど時間に追われると DP は普通に解けないF 問題Cleaning Robotが面白そうdiff だけどK の制約が突き抜けていて予め無駄な努力を拒絶する親切仕様ネタバレが許されないタイプの問題だと思う自分でネタを掴みたい@2021-09-30 メモまず1サイクル巡回して通過点と原点との関係を角度(GCD(X,Y) で割った X 座標と Y 座標)ごとに絶対値(GCD(X,Y))で記録する1サイクルごとに原点がどこに移動するかも記録する重複(後追いと交差)を省いて K 回分数え上げるどうやって?


20210917() [AtCoder] 精進ARC063-D高橋君と見えざる手( diff)っと似た問題が思いつかない不思議な問題入力のうち T は未使用>提出 #25884205出力部分を p [Hi,Lo].min としたけどAi​ は相異なるという制約を見落としていたそれなら HiLo の数は必ず一致するだから簡単になってこう>提出 #25884286ああこのメモしながらスキャンするだけの水 diff には覚えがあるAtCoderゃんけんだ>20210830今の ARC だと A 問題( diff)でもこれより難しいよこれとか>Many Formulaeメモしながら一度スキャンするだけなのは同じなんだけど>提出 #23369338


20210916() 信号無視で検挙も不起訴「ブルの免許で更新されたとしてゴド求め提訴:バイク速報■これまとめ内でも理解してないコメトがいくつもあって自分も知らなかったのだけどサインしないで裁判沙汰にして不起訴(起訴猶予)になったけど点数は引かれてましたっていう経緯みたいったと思ってたら負けてたみたいなそれはわからんで起訴猶予とは?不起訴・無罪との違い | 弁護士法人泉総合法律事務所 不起訴になる理由に3種類あるらしく嫌疑なしと嫌疑不十分と起訴猶予この件は起訴猶予起訴猶予と犯罪を犯したことを裁判で証明できるが被害が軽微である示談ができて被害者も許してくれた社会的制裁を既に受けている深く反省しているなどの諸事情を総合考慮して今回は起訴を見送るという判断らしくこれだけ読めばお目こぼししてもらえてラッキーだったねという印象だけどッキーだったとは考えられない理由が2つある1つ目はそもそも信号無視程度の違反は罰金案件ではないから不起訴という結果はプラスの結果ではないのではないかということ2つ目は犯罪を犯したことを裁判で証明できるというのは検察官の見込みであって裁判を経た裁判官の判断ではないということだから起訴猶予でも嫌疑なしでも不起訴は不起訴であり罪はまだ存在しない■さて反則金で済ませられるところを裁判沙汰にして罰金案件にしておそらく二重に課せられることはないだろうからこの時点で反則金の支払いは免除されてると思うが不起訴の結果で罰金の支払いも回避できたけどなぜか違反の事実は消えず点数が加算(減算)されていたこれをどう考えればいい合理的な説明できる? 裁判所にいったんエスカレーションした案件で点数だけが反則金(罰金)とは別口で処理されてるように見えるんだけどこれは矛盾では? 矛盾ではないというなら存在する違反に目をつぶった検察官の恣意か存在しない違反に対して点数を引いた警察の恣意かどちらかを権力の乱用・私物化として問題視するほかないと思う実際問題起訴猶予を選んで公判を開かない(まかり間違っても)前科を付けないという検察官の判断は裁量の範囲で妥当なものだと思うそして警察は(理由や思惑によらず忖度せず)不起訴という事実を以て行政処分をあきらめるのが筋の通し方だろうって起訴猶予でも不起訴を推定有罪扱いはできないでしょうコメトによれば不起訴で点数を戻す警察もあるらしいしそれが当然だと思う京都府警の主張では行政処分は警察の管轄ということらしいけど反則金制度が運転者に二重の処罰を受けさせるために存在しているとでも?(そうなの) まさか司法判断を虚仮にする自虐趣味はないと思うが地裁判決が狂ってることはまれによくあるので京都地裁の判断を期待して待ちたい


20210915() [AtCoder] 精進ARC073-DSimple Knapsack( diff)トルに騙されて制約も見ずに DP 用の配列を大きさ W で確保しようとしたらサイズ1ギガの配列は大きすぎると Ruby に怒られたSimple とは……難しく考えて再帰関数で 64 ms の提出(#25855795)を作ったのだけどこれって DP からの退行では? Ruby のバージョン違いによるオーバーヘドの差があるからそのままの数字を比較できないけど連想配列で普通に DP をしても 30 ms で済んでいる>#11970957そしてこちらのこの方は自分と同じく DFS を採用してらっしゃる>#25853638 (今日の提出)AtCoder ProblemsRuby による最近の提出一覧を見て今日の一問を選んだのです。中身までは見てなかったので似てるのは問題から導かれる必然であり偶然の結果です。違うところはある重さのアイムの採用数を一定レベルより下げても他の重さのアイムの採用数が上限に達して増やせなくなるポイトがあるのでその均衡点を見極めてループを打ち切っているところそれが難しく考え過ぎだっていうんだけど想定解が 400^3 のループで Ruby 勢を虐殺した ABC-D の恨みが記憶に新しいせいなんだよなあ


20210914() [AtCoder] 精進ABC022-DBig Bang( diff)2つの点集合を平行移動して回転させて縮尺の比を求める問題最近あった座標問題2Congruence Pointsほくろとは違って個々の点の座標を一致させる必要はない座標変換の具体的なパラメータを探索することが許されている制約でもない(2N10^5)直径だけわかれば十分しかしどうやって? テーに並べてテーにいくつか距離を計って最大値を選んだら通りましたよ>提出 #25850608提出一覧から1つ2つ他の人のを覗いたら重心からの距離の最大値を使っているみたいだった重心は Congruence Points でもキーになっていたのにまた気が付かなかったこれはいけない頭の悪さを晒しているぜ役に立たないときに限って重心を持ち出している>20210406p01■ところで今気が付いたけどこの回の ABC って 100 分でなく 120 分だ途中までそうだったんだろう今は4問が6問になってさらに難しい2問が追加されて全8問で 100 分だよ


20210912() [AtCoder] 精進っと前の ABC215-EChain Contestant( diff)当日にこう書いている>今日の感じだと E 問題 F 問題が解ける世界線はそう遠くないと思えるんだけどつまりは解けなかったってことなんだなE 問題で TLE 解が作れただけ実際日を改めれば解けるんだよ>提出 #25816607それに166 ms でだいぶイケてると思う>Ruby によるすべての提出これを本番でだね……■調子に乗って考え方を書いておこう現在の状態をどうクラス分けできるこれまでに出たコンテトの集合と最後に出たコンテトの種類のペアで分けられるそれだけが区別できれば十分それが D = Array.new(11){[0]*(1<<10)} の部分10 のビトフラグが 10+1 個分コンテトの種類は 10 なんだけど余分な +110 個の合計の記録用に確保した(Ds = D[-1])というのは最後に出たコンテトの区別は現在のコンテトと同じか異なるかという二値で十分なのに異なるものが9個に分かれてると集計が面倒だからあとはコンテトの回を追って参加した場合参加しなかった場合を数えていくだ■これは自分が DP を知らなかった昔に DP と知らずに書いたのと同じ形>20120214p01.02Project Euler191 問目だった


20210911() [AtCoder] 今日は ABC218 の日だった本番で青 diff 通したいねえFBlocked RoadsがそうN の3乗が通らないだろうとは制約から読み取っていたけど普通に BFS を繰り返すだけで通ったのが拍子抜け>提出 #25793701なんだよ(まじめに書くと繰り返しの上限が辺の数 M(N*(N-1)/2) ではなく最短経路の辺の数(N-1)だということが見抜ければ意外ではない)だからと言って惜しかったとは感じないし悔しくもないけどREWA を繰り返した最初の方針でも AC まで行けた>提出 #25812833っとした沼にはまっていたんだなE 問題を通してから終了までのおよそ1時間のあいだ


20210910() 朝日新聞デジタ300億年で1秒しかずれない極めて正確な光格子時計を開発した従来の原子時計をはるかに超え1秒の定義に採用される可能性もある重力が大きいほど時間の進み方が遅くなるという相対性理論の効果を利用して十数メトルの高低差まで検出できる すごい! スケールが不明で何がすごいのか全然わからない!(十数メトルの高低差が認識できない人類おる?)■それはそれとしてっと前『精密への果てなき道 シリンダーからナノメトルEUVチップへという本を読んで世界を計る解像度の向上は文明の発展度合いを示すわかりやすい尺度になるなあと思ったのだったまる知識と発展の源泉であるよ


20210909() [AtCoder] 精進ABC036-D塗り絵すごく難しかった>提出 #25696587解答の形も式もほとんど 20210624 で解いた競プロ典型90073 - We Need Both a and b(★5と同じというかあちらがこちらと同じだけどやっぱり難しかった解説なしで解けたのだけが進歩これが昔の ABCD 問題でギリギリ青色だってんだから解かれすぎでは? 自分が苦手にしてるだけ典型の方も★5つで中程度の評価だもんな


20210908() [AtCoder] 精進この前の ABC217-FMake Pairマイメロ()これほぼ先週のFと同じってマイメロのママが言ってたよ https://t.co/31te6MkVI2といって競プロ典型90019 - Pick Two(★6をポイトしていたので自分の提出(#22879312)を参考にして取り組んだ2 WA3 TLE のち AC>#25683515おかしい一度解いた問題が身になっていないそんで再帰関数で制限時間ぎりぎりだけどDP 化するとだいぶ速いみたいできませんけども


20210907() マジックナンバー使う? どんどん使え! - Qiita■これって逆張りに行っているようでやってることの実質はマジックナンバーの定数化と同じだよね。x*0.10mx*税率 にするのも 消費税額(x) にするのも名前を付けているという点で同じ名付ける対象がデータか手続きかという違いはあるしそれを定数で定義するか関数で定義するかという違いもあるけどstatic メソドでアクセスするシングトンオブジトがグローバル変数と同じなのと同じ程度には同じ■2つあるブコメにもそれぞれ一理はあって変更があるものは定数化した方がいい気がしま.....それはそうただし設定項目の一部であったりしてプログラムとは別のサイクルで変化する場合や変更が複数箇所に及ぶ場合に当てはまる話であって同じソースコド上にある現状であれば定数定義を1か所変更することになるか関数定義を1か所変更することになるかという違いはどうでもよくない? 例がよくない例示している消費税率はソースの至る所に存在するようになり定数化しておくと法律が変わり修正が必要なときに修正漏れを抑えることができる1度しか使わない値を定数化など何でもするはよくないというのもそれはそう当たり前のことをこの記事に対してコメトするのはなぜたぶん記事の中の 消費税額 関数を否定はしていなくてだけど 0.10m というマジックナンバーを利用する場所が絶対に 消費税額 関数1つにとどまらないだろうことを見越し「例が良くないと言っているのだと思う


20210906() アルノサージ(PS3)クリアしたトネリコ1もそうだったけどっこう特異なヒロインを造形するよね(見た目じゃなくて)好き