Problem Analysis
题目大意:给定 n n n个数的序列,以及随后的 m m m组询问。回答对于每组询问给出的 l , r l,r l,r,区间 [ l , r ] [l,r] [l,r]内不同数字的个数。
首先问题的形式与主席树是十分相似的:先给定序列,然后给定多组区间查询。但是显然不是单纯的维护区间第 k k k大的问题。
那么考虑如何将问题转化为主席树可维护的问题:我们对每个点维护一个数组元素 n x t [ i ] nxt[i] nxt[i],表示最近的下一个同色点的下标。那么现在不难发现对于给定区间 [ l , r ] [l,r] [l,r],如果 n x t [ i ] > r , i ∈ [ l , r ] nxt[i] > r,\ i \in [l,r] nxt[i]>r, i∈[l,r],那么表示与 i i i相同颜色点位于区间之外。那么求不同颜色问题便转化为给定求所有满足 l < = i < = r , n x t [ i ] > r l> r; //cout
- 回坑记之或许是退役赛季?
- [LCT刷题] P1501 [国家集训队]Tree II
- [LCT刷题] P2147 洞穴勘测
- 2022-2023 ICPC Brazil Subregional Programming Contest VP记录
- [线段树套单调栈] 2019-2020 ICPC Asia Hong Kong Regional Contest H.[Hold the Line]
- The 2021 ICPC Asia Nanjing Regional Contest E.Paimon Segment Tree 区间合并线段树/维护矩阵乘法
- CF580E - Kefa and Watch 线段树维护哈希
- HDU5869 Different GCD Subarray Query 离线查询/区间贡献
- 27.CF1004F Sonya and Bitwise OR 区间合并线段树
- 26.CF1000F One Occurrence