P1972 [SDOI2009]HH的项链


简化题目:
静态维护,离线询问区间种类数
考虑运用树状数组,对每组询问r从小到大排序,依次不断更新前缀
如果该种颜色已经出现过,就在上一次出现的位置-1
然后对该位置+1,将该颜色上次出现的位置更新为该位置

#include
#include
#include
#include
using namespace std;
#define maxn 1000119
int num[maxn],tree[maxn],booll[maxn],nnn[maxn],N,ww;;
//num数组保存原数列,tree树状数组,nnn保存结果
struct tt
{
    int l,r;
    int pos;
};
tt ask[maxn];
bool cmp(tt x,tt y)
{ 
    return x.r