题意:给定一个区间,q个查询,对于每次查询回答这个区间内所有不重复的数的和。
思路:可以考虑使用树状数组来做。
先读入所有查询,离线来做,将所有查询按右端点升序排序。
那么我们从给定区间的第一个元素开始遍历这个区间,在此过程中更新每一个元素上一次出现的位置,每次将现在位置加上a[i]并将lastpos位置减去a[i],
也就是说,我们每一步都是保留与当前位置距离最近的重复元素值,其余置零,那么这样肯定能保证答案正确,
如果遍历到的这个位置恰好是一个询问的右端点,那么我们输出修改后的区间值之和。
?
#include
#include
#include
#include
#include
#include
#include
#include