2つの数列Ai, Biが与えられる。Biがxを超えない最大のAiを見つけたい。 単発であれば線形オーダーで見つけられるが、xを変えて繰り返されるので前処理をして対数オーダーにしたい。

(Ai, Bi)を辞書順ソートし、Bj>BiでAj<=Aiであるようなjを取り除く。それらが解になることはないから。 image 取り除いた列に対して二分探索でBiがxを超えない最大のiを見つければよい。

蟻本p.149