摘要: http://acm.hdu.edu.cn/showproblem.php?pid=3874题意:给你n个数,然后给出m个的询问[l,r]问[l,r]中不同的数的和为多少?思路:单纯只考虑不同数的和的话,可能该数在之前出现过,后边又出现了,但是所求的区间不包括前边那个数,那么这个数就要被加进来。关键是如何维护该区间不包含重复计算同一个数。首先我们离线处理所有询问,然后按r排序,然后遍历一边处理那些还没被加进线段树的数,如果他之前出现过了,那么就将之前的删除,然后再吧后边的加进来,这样既能保证同一个数只被计算的一次了,而且不影响后边的询问。这里关键是按r排序之后的处理:#include < 阅读全文
posted @ 2013-05-31 17:00 E_star 阅读(245) 评论(0) 推荐(0) 编辑