摘要: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3633给你n个数,然后m个询问,每次询问区间[a,b]中从右到左最先出现重复的数字,比如51 2 3 1 2询问[1 5],那么答案就是2.因为2是第一次出现2次的。其中3≤ n ≤ 500,000,1 ≤ m ≤ 50,000,数值<=2^31-1。解法是,先把所有数字从小到大排序,相同的按出现的先后顺序排序。更新时,对于每一个数x,如果前面的y==x的话,那么在线段树中,在x的坐标位置上赋值上y的坐标位置。查询时,[a,b]就是查询区间[a,b]中大于等于a的最 阅读全文
posted @ 2012-08-26 20:09 Accept 阅读(544) 评论(0) 推荐(0) 编辑