牛客8月小白月赛 G
每条鱼出现时刻为 \([l_i,r_i)\),体重 \(y_i\)。初始的鱼体重为 \(x\),吃掉一条鱼必须满足 \(x\ge y\),同时吃掉后 \(x=x+y\)。选择一个时刻吃鱼,求最大体重。\(y_i\le 10^9\)。
调和级数+线段树二分。
扫描线,权值线段树维护当前时刻鱼的集合。设当前体重为 \(x\),二分体重不变的情况下最多能吃掉多少鱼,更新体重,尝试吃掉下一条鱼。由于这个过程中体重至少 \(\times 2\),时间复杂度 \(O(n\log^2 n)\)。

浙公网安备 33010602011771号