長さNの正の数列 Ai, Bi からK個選んでSとする。ABそれぞれの和の比率を最大化したいとする argmaxS∑i∈SAi∑i∈SBi 和の比率を直接最大化するのではなく、和の比率がX以上かどうかの判定問題にし、Xを二分探索する解法がある ∑Ai∑Bi≥X ∑Bi≥X∑Ai ∑Bi−X∑Ai≥0 ∑(Bi−XAi)≥0 条件を満たすSが存在するなら、Bi−XAi が大きい方からK個選んだものは条件を満たす。 よってこの判定問題はO(NlogN)で解ける。 このXを二分探索すれば、条件を満たすSがある最大のXが求まる。これはXの最大値である。 濃度の最大化