こんにちは、kazuppaです。
JOI二次予選の結果が出た記念ということで感想記を書こうと思います。
自己紹介
中2
AtCoder id:kazuppa
Algoレート2141(黄)
去年JOI本選Bランク
二次予選開始まで
3日前くらいからJOI難易度9を埋める作業をしていました。結構頭使う問題が多くて楽しかったという気持ち。
直近のABCほとんど黄パフォ取れてたしARC211 Div.2で人生初の赤パフォを取れていたのでまあさすがに落ちないでしょうと調子に乗っていました。
実際当日の2時間前くらいは呑気に音ゲーをしていました。ユメステ楽しいね。
開始直前(なんとコンテスト最中も!?)呑気にAntimatter Dimensionsをしていました。楽しいね。
明らかにいつものABCと同じ雰囲気で臨んでいます(実際リラックスしてた方が自分的にはやりやすいのでこれでいいという話はあり)。
A・B
難易度は昇順なはずなのでAから見ていきます。
A、見た限りソートして $A_{\frac{N}{2}}$ が正しそうだと思い投げるとWAと言われます。ひどい。
いろいろな解法を投げても40点しかもらえず、このままだと沼りそうだったのでBに逃げます。
Bを見たとき麻雀っぽいなーになり、考えると左から貪欲が正当そうに見えます。
このコードを書いてる最中にAで「解で二分探索、スコア関数に二分探索の $O(N\log N+\log^2 N)$」が思いつきますが、いったんスルーしてB。
特になにもなくBをACできました(9:29)。そしてさっきの解法をAで書いてみて投げるとACと返ってきます(12:35)。
幸先から不安ですがこのままCに行きます。
C
明らかにOIOIOIとなる文字列を別で持てと言われてます。解を持つ文字列とOIOIOIと連続してるところを持った文字列を用意し、いい感じのシミュレーションをします。
投げると通りました(17:54)。こういうタイプの問題苦手なのでさらっと通せてうれしい。
D
割とすぐに解法は見えます。$k$ を決めた時、$A$ はソートして累積和を前計算で作れば二分探索などでコストが $O(\log N)$ で求まります。
また $k$ を決めた時の解には単調性があり、最適な $k$ は算数で求められます。三分探索でも可能です。
しかし、算数は数値合わせが面倒です。また三分探索はlogが二つ付くのでなかなかに怖いです。
結果、三分探索をとりあえずやろうになりました。どうせ間違えてもペナはつかないし脳死で書けるし通ったらお得なので。
実際に書いてみると投げてみると1645msで通りました(34:28)。戦略が刺さってにこにこしてました。
E
去年(5問セット)は自分にとってはDからどれだけ部分点を取れるかというゲームでした。実際去年のA~Cと今年のA~Dは同程度の難易度だったのでここからが本番だという気持ちで問題文を見ます。
なんか、う~んという感じで部分点を見て仰天。崖という雰囲気を感じます(実際そうでした)。そのときFの部分点も見てたんですがこれも崖がひどそうという印象。これで満点を取らないとかなりまずそうという気持ちになりました(実際はこの時点でボーダーは到達してましたが...)。
一旦小課題1は思いつきます。貪欲ぽさそうです。拡張幅優先探索で小課題2も解けそうです($U_i$ と $V_i+N$ を辺でつなぐみたいな感じです)。それ以降は思いつかずくねくねしてました。
何も思いつかなかったのでサンプル3を頂点倍化して見てみます。すると $u,w+N,v$ というパスが存在するなら $ans_u=ans_v$ という事実に気付きます。これは $s=v$ という問題については $v,w+N,u$ と辿れば $s=u$ という問題となるからです。なので、それらの解をまとめてBFSすれば解が求まりそうです。これを投げるとACと返ってきました(60:10)。これでさすがに通っただろうと安心します。
F
これは小課題順に解いてみます。
小課題1は $\frac{N}{2}$ で解けます。また小課題2も3のべき乗のbit dpで解けます。二つまとめて19点を得ます(76:45)。
小課題3がかなり遠そうという印象を受けます。なので考察を進めてみます。
まず、各色は高々3隻までしか塗らなくていいと気づきます。これは小課題1を思い出してみればわかります。これを利用してbit dpもどきを枝刈りしたコードを投げてみますが、変わらず19点のままです。
さらに考察が必要だと思ったので、天啓を待ちました。すると $N$ が偶数の時、3隻セットは存在しないという天啓が降ります。そのときは $(i,i+\frac{N}{2})$ ペアが最適なので、$N$ が奇数の時はassert(0)、偶数の時はその解法というコードを投げるとWAが出ませんでした。これはこの天啓が正しいということです。
さらに奇数の時は3隻セットが一つのみという天啓も降ってきます。これを愚直に $O(N^3)$ で投げると70点を得られます(120:44)。当時ガッツポーズしていました。
さらに天啓を待ちます。奇数の3隻セットが $(i,j,k)$ とすると、全ての $i$ について解の候補となるのは $k$ 最大が最適という天啓が降ってきます(先にお断りしますがこれは嘘です)。試しに書いてみるとACと言われました(126:03)。
最後に

結果、100-100-100-100-100-100の600点でした。大成功。
STPC2025Div.2-BやARC211-Dなどでもそうなんですが、自分は「天啓」がかなり得意なのでそれが刺さって本当によかったな、という感じです。
F、セグ木とかsparse tableとかが想定解なんだろうな、は気づいていたんですがあまりに書きたくなかったのでそれを後回しにしていました。ごめんなさい....
何はともあれ本選(セミファイナル)には行けました。今年こそは絶対に春合宿(ファイナル)行きます。本選に行く方々、よろしくお願いします。