树状数组.
- 题面有些歧义,线段上/下方的点是指横坐标也落在线段范围内的点.不包含所有颜色是指不包含所有 $k$ 种颜色.
- 要求不包含所有颜色,即至少有一种颜色没有包含.可以枚举这个颜色 $c$ ,计算不包含 $c$ 时的最大收益.
- 把所有点按照 $y$ 坐标从小到大排序,依次处理.如果对某一个点,以它的 $y$ 坐标为下边界画矩形,贪心画最大的,往两边拓展,直到遇到不能选的颜色为止.这个就是在对应颜色的 $set$ 里面找一下前驱后继.
- 以它的 $y$ 坐标为上边界同理,将 $y$ 坐标从大到小排序做上面过程即可.画矩形时的收益用树状数组维护.
1 |
|