ARC165を書きました

atcoder.jp

久々に作問記

問題の解法のネタバレを含むかもしれません。

A: Sum equals LCM

元ネタは箱さんのこの問題です。

yukicoder.me

「順列 PN 回かけて P_i=i が成り立つのは P が長さ N のサイクルからなるときのみ」が成り立つと思い込んで証明してみようとしたら全然嘘でしたがARC-Aっぽくなったので出しました。

なんで300じゃないの?って言ってた人を観測しましたが、これは自分のAがだいたい炎上しがちだったので怖くなって高めにつけたからです。testerには300評価の方もいました。

B: Sliding Window Sort 2

ARC-Aつくりたいな~と思って適当に作ったら難しくなっちゃった枠。自分で考えたときは割とすぐに後ろ K 項ソートがつよいな~になって時間かけずに解けたのですが、難しかったらしい。B-Cのtesterの評価が分かれてたのでB=Cにしたけど自分は B > C 派だった。

 

嘘解法が通ってたのはマジですいません…

postしたように  P_{n-k} \gt P_{n-k+1} のケースしかなかったのが1つの原因です(これを解消するテストケースは追加したがそれでも落ちない嘘解法があるらしい…)。

こういうミスはシステム的に防ぎたいのですが、マルチテストで小さいケース全部いれるなど小手先の対策以外に思いつかないので厳しい。

…と思ったけどこれ条件追加したりすれば数え上げにできたしそれなら嘘考察は通らなかったかもしれませんね。今度からARCは6問全部mod 998244353にします。

C: Social Distance on Graph

適当に作った枠。Social Distance ~ っていう題名の問題をちょくちょくみかけたので自分も名前から作ってみました。二分探索から考えれば素直な考察だと思うし、同じ点数のBとばしてC解く人多いんじゃないかな~と思ったけどそこまで解かれなかった。JAG合宿で他の人に話を聞いたところ序盤だとさすがに解かなきゃダメだろという気持ちになって飛ばしずらいらしい。なるほどなあ。

D: Substring Comparison

お気に入り枠。「部分文字列の辞書式順序比較によってminimum cyclic shiftを求めよ」というインタラクティブ問題を考えた後 adaptive にできるかな~と思ってでてきた問題です(元問題は非想定が強くて廃案)。最初は比較が定まる位置を決め打つとかして解けるわけね~ってなった後考え直したら解けてびっくりしました。

白状すると自分は500点ぐらいかな~と思い「考察要素ないかも…」っていうコメント付きでadminに投げました。adminからは「考察要素あります」というコメントが返ってきました。冷静になるとそれはそう。

解法が全然見たことない感じの問題でどれくらい解かれるかは全然わからなかったですが、想像よりは解かれました。

E: Random Isolation

適当に作った枠2。AGC058F をみて指数個状態がある期待値問題作ってみたいと思って作ってみた問題です。期待値の線形性は指数個に分けても最終的に状態をまとめられれば計算できるんだな~というある意味教育的な問題にもなったかなと思います。Dと比べるとこっちのほうが典型的だしmod998だしAC数多くなるか?と思っていましたが結構差がでました。

余談ですが N\leq 1000, K\leq 10 とかで出題する案もありました。\Theta (N^2(N-K)^2)\Theta (N^2K^2) にしてね~という意図の案で、本質からすこし離れた改善を要求するのでめっちゃ文句いわれそうだと思いやめました。ただ \Theta (N^5) をやっている人が多かったのを見るとこれもありだったかもしれない。

F: Make Adjacent

本棚の整理をしているときに考えた問題です。最初は良い数列にする最小の操作回数を求めろ、という問題でしたがあまりに無。最終状態には自由度があったので辞書式順序最小化できるか考えてみたところ、時間はかかったものの解けたのでこの形で出題しました。

いわゆる「低い項」の管理ができるデータ構造をつくれという問題で、典型そうな見た目のわりに自分は見たことなかったのですが、adminにみせたところ有名といわれました。やっぱりそうなのかー

データ構造ゲーなのでJOIerが有利だろうなと予想したところやはりCyanmondさんが解いて銀パフォ決めてました。予想あたってうれしい。

全体の感想

ようやくまともな難易度のAが出せたと思ったらBでチョンボしてしまいました…

4-6-6-7-7-8という異様な配点で騒がれてましたがB=Cにする都合で両方6がついただけなので C5 にすればちょうどよかったのかなーと思っています。

後半は優しめ(当社比)なので全完で1ページ目が埋まったり、Fが金属diffを回避できるかなと思いましたが、残念ながらそうはなりませんでした。くそー

来年度はさすがに国試勉強に集中することを考えると、writerはあと2,3回で終わると思います。もうすこしお付き合いください。