几乎所有种类问题都可以转化成两种模型之一
 1.直接维护ans数组
 2.统计二维数点问题
前置知识
二维静态数点
以y为第一元素,x为第二元素,原点优先级大于查询点,对所有点(原点+查询点),然后求
 

for(int i=1;i<=q;i++){if(q[i].tag==1)add(q[i].x,1);else ans[q[i].id]+=q[i].m*ask(q[i].x); }
//q[i].m表示符号
区间最值

例题:
例题1
例题2

 第一个方法:
 维护ans数组,当从L到L+1时,next[i]到next[next[L]]-1这个区间整体减一,就是查看每个数的贡献是什么样的
 利用线段树维护
 第二个方法:
 计数点为倒数第二个点,因为题目要求出现两次及以上
 点i为倒数第二个点,next[i]就是最后一个
 什么点符合要求?
 next[next[i]] > r , l <= i <= r
 以i为横坐标,next[next[i]]为纵坐标
 二维数点
 
例题3

 第一个方法:
 1.i到nxt[i]-1 的区间-1
 2. nxt[i] 到nxt[nxt[i]]-1的区间+1
 第二个方法:
 
例题4

 只出现一次的电影的权值和
 
 