P1972 [SDOI2009] HH的项链
题意:统计区间内不同数字的种类
对于[l,r]区间内的某一种贝壳来说,只有最右边的贝壳有意义,所以将所有询问区间[l,r]按照r从小到大排序;对每一个数字记录上一次出现的位置
利用线段树完成单点添加和区间查询
P3567 [POI2014] KUR-Couriers
题意:统计区间内出现次数大于区间长度一半的数字
建立主席树,原数组每个数进行添加操作,每个线段树维护大小为[l,r]之间的数字的数量,若一个数出现次数大于区间长度一半,那么这个区间内的所有数出现次数也大于区间长度一半。对于[l,r]的询问,找rt[l-1]和rt[r],每次相减的结果,若左子树值大于区间长度一半走左边,反之走右边。
P7424 [THUPC2017] 天天爱射击
题意:水平的木板会被竖直方向发射的子弹击中一定次数后会被打烂,求每个子弹打烂了几个木板
相当于求木板所在区间内第k个子弹,建立主席树,每个线段树维护的[l,r],即第l个到第r个子弹中有几个子弹,而每前进一个距离就建立一个新树