国庆专辑
HH的项链
首先预处理出一个数组a,a[i]表示第i个数右边第一个和这个数相同的数的位置,如果右边没有相同的数那么a[i]就等于n+1。
这样,对于询问[L,R],[L,R]中满足a[i]>R的数的个数就是答案。
因为这样可以保证对于多个相同的数,只有最靠右的一个对答案有贡献。
所以问题就变成了求区间中权值大于k的数的个数。把数组开大一点。。
听队友说好像还有一个莫队算法是专门解决这类问题的,感觉这个名字好像见过,明天我去搜一搜
刚坐火车到家,有点尴尬,今天就先写这些吧
国庆专辑
HH的项链
首先预处理出一个数组a,a[i]表示第i个数右边第一个和这个数相同的数的位置,如果右边没有相同的数那么a[i]就等于n+1。
这样,对于询问[L,R],[L,R]中满足a[i]>R的数的个数就是答案。
因为这样可以保证对于多个相同的数,只有最靠右的一个对答案有贡献。
所以问题就变成了求区间中权值大于k的数的个数。把数组开大一点。。
听队友说好像还有一个莫队算法是专门解决这类问题的,感觉这个名字好像见过,明天我去搜一搜
刚坐火车到家,有点尴尬,今天就先写这些吧