
莫队
文章平均质量分 71
&稚始稚终
这个作者很懒,什么都没留下…
展开
-
D. Cut and Stick(莫队维护区间众数)
D. Cut and Stick题目传送门:D. Cut and Stick题目大意:给你一个a序列,询问q次,每次问区间[l,r]最少可以分为几个子序列,使得子序列中每个数的出现次数小于等于x/2(向上取整,x为子序列长度)思路区间的离线查询首先想到莫队,看到题目的限制就会想到我们需要求得区间的众数。我们用cnt[]数组记录每个数出现的次数,在进行莫队add操作时:众数的维护很简单,只要与加入的数出现的次数取大即可;在进行莫队del操作时:原来是众数的数可能变成不是众数,于是我们可以再开一个数原创 2021-04-22 22:59:22 · 712 阅读 · 0 评论 -
莫队算法初探
普通莫队莫队算法一般分为两类,一是莫队维护区间答案,而是维护区间内的数据结构。当然也有树上莫队,带修改莫队,二维莫队等等。这篇文章主要介绍的是普通莫队算法。我们考虑一个问题,给定一个序列,m次询问,每次询问区间[l,r]有多少种不同的颜色。n,m<100000先考虑暴利,对每次询问遍历一遍[l,r],这样是O(nm)的。换种方式暴利,定义ql和qr,表示区间[ql,qr]内有多少种颜色,再定义cnt数组,cnti表示第i种颜色在区间[ql,qr]中出现了多少次。我们一个一个询问处理,对于询问转载 2021-02-18 22:09:09 · 227 阅读 · 0 评论