切入点在于我们要维护的答案:同种颜色最近距离,不涉及颜色修改显然可以对每种颜色线性枚举统计答案。我们把整个修改拆解成单个插入。为了统计是否造成贡献就需要找到插入的下标在他插入的集合里的前驱和后继,显然可以平衡树(set实现)。
考虑到我最开始想到的是块状链表维护插入,还是太魔怔了(传奇O(nlognn)O(nlogn\sqrt{n})O(nlognn)做法)。
至于插入颜色的方法显然应该启发式合并,因为只有合并没有分裂,怎么会有人写线段树合并呢?
注册一个 SDSY 通用账户,您就可以在我们提供的所有在线评测服务上提交代码、参与讨论。
使用您的 SDSY 通用账户