halcの競プロ精進ブログ

はるくが競プロしたことを書き留めるなにか

【今日の精進】JOI春合宿バチャ練習 Day2 (番外編)

毎日格上の問題を倒すやつの53日目です。*1

コンテストリンク

https://kenkoooo.com/atcoder/#/contest/show/172ff02f-aef7-48c8-8f65-0de9b8643797?activeTab=Standings

結果

道案内...45/100(ooo-)

ドラゴン2...100/100(ooo)

防犯ゲート...12/100(oo--)

合計...157/300

割と良いのでは?

解法

J - 道案内

~小課題2

とりあえず距離を書き込めば1は解けます。

\leq 2 があまりにも意味深なので、これを眺めてみましょう。

すると、3 で割ったあまりをとっても判別できることに気づきます。

小課題3

次数が2でないのもめちゃくちゃ意味深です。

これはつまり、「1つだけ違う数字の時、それが一意に定まる」ということです。

なので、うまく進むべき方向だけ数字が違うようにしたいです。

これは、家までの距離を 4 で割ったあまりが 1,2 なら 0 、でなければ 1 を書き込めば良いです。

L - ドラゴン 2 (Dragon 2)

え~…

誠に申し訳ございません。

完全に愚直な O(QN^2) 解法*2QCFium法で高速化したら通りました(笑)

なので特にいうことはないです、はい。練習にはよくなかったとだけ。

I - 防犯ゲート (Security Gate)

~小課題2

何もわからないのでかっこを全探索です。

それぞれのパターンに対して、O(N^2) の耳DPをします。定数倍高速化はしましたが3は通らず。bitsetが想定解らしいです。

提出コード

道案内

atcoder.jp

ドラゴン2

atcoder.jp

防犯ゲート

atcoder.jp

感想

道案内の解説が天才で萎えた

*1:この挨拶もうおかしいだろ

*2:全点間外積で交差判定、計算量は実際はずっと小さいが…