牛客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)\)

posted @ 2024-08-23 19:36  BYR_KKK  阅读(20)  评论(0)    收藏  举报