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