对于前两个个任务点,n2n^2n2 处理出所有区间然后把和的值、区间大小依次做关键字,从头往后遍历,再开一个数组 vis 表示哪些点访问过就行。
vis
第三个任务点我感觉也是能拿的,但是不能用 vis 了,在复杂度上需要把这个 nnn 变成 logn\log nlogn。我想了一个办法,用一个数据结构来维护区间的集合,需要实现:判断一个区间和集合中的区间有无交集,如果没有就加入集合中。
但赛时想了好久没想出怎么实现这个结构,如果用 set 来分别存左右端点,怎么二分判断有没有交集呢