ABC 304 G - Max of Medians

初めに

atcoder.jp 解説放送で AC です

解法

中央値の最大化で手が止まります.

では最小値の最大化は? 二分探索ですね

同様にできます. 具体的には,  f(X) :=  A を適当に xor を取ったもので  X 以上が何個作れるか という関数を考えます.

この値が  \lfloor N/2 \rfloor + 1 以上であれば, 中央値が X 以上に大きくすることができます.

なのでこの  f(X) を実装することができれば, 答えで二分探索をすることによって正答が得られます.

これは  X を上位 bit から見ていき, 再帰的に数えていくことで実装できます.

atcoder.jp

終わりに

判定関数の実装, どこで練習できますか...?

Books

www.youtube.com