B - Taking the middle
この記事は解説記事というより類題を解けるように問題の本質を自分用にメモしたものなのであまり参考にならないかも...
AC解法
どうやら高度典型らしい。
B : 2:10 で解きました
— tatyam (@tatyam_prime) 2021年4月10日
中央を取られ続けるということは、V[n-i : n+i] の範囲から i 個までしか取れないことと等価です(高度典型)
外側 2 つを入れて任意の 1 要素を取り出すとするとこの条件を表現できます
1つ目の文章
中央を取られ続けるということは、V[n-i : n+i] の範囲から i 個までしか取れないことと等価です(高度典型)
これはカードを取るときの自由度が低い青木くんに注目することで、青木くんが常にV[n-i : n+i] の範囲から i 個以上取っている事がわかる。
十分条件がわかったのでこれが必要十分条権になることを証明すれば気がつけば典型を導けそう。
十分条件を見つける→必要十分で有ることを証明する
っていうのは典型ぽいので自力で導けるようにしたい。
2つ目の文章
外側 2 つを入れて任意の 1 要素を取り出すとするとこの条件を表現できます
番号が N−i+1以上 N+i以下のカードであってまだ選ばれていないもののうち、価値が最小のものを選べば良いことがわかる。
このような問題はpriority_queueで解ける(類題はあり本p73のexpedition)
今回の問題と類題の共通要素は
「決定するタイミングを後にずらして選択肢を全部みてから決める」
という部分にあると思う。