摘要: 首先想到把 k/2 个元素分为一块,不同块里元素的去重,可以暴力枚举每一对块,将它们一起加入队列。搞一对块就清一次队列,有点浪费。考虑把块连成一张有向图,那么每次可以顺着图上的路径一直走。问题转化为将图划分为尽可能少的路径,使得每条边恰属于一条路径。发现扩充为完全图后,可以得到更优秀的划分方案。 阅读全文
posted @ 2021-02-03 21:31 duyiblue 阅读(307) 评论(0) 推荐(3) 编辑
摘要: 对值域分块,每块内按原序列里的位置排序。查询时把每块内下标在 [l,r] 之间的提取出来,依次合并。问题转化为预处理出每块内的所有区间对应的集合。可以在值域上分治。每次把小于等于 mid 的元素和大于 mid 的元素,按原顺序分在两边,递归求解后,再把两边的答案合并。 阅读全文
posted @ 2021-02-03 01:06 duyiblue 阅读(200) 评论(0) 推荐(0) 编辑