题意
给你一个序列,每次询问一个区间,问你区间内的Mex值。
什么是Mex值呢?比如说某个数字出现1次,某个数字出现3次,那么Mex就是:2.
这个类似于SG函数,就是未出现过的最小的那个数字。
另外输入中还会有另一种操作: 单点修改
思路
我们肯定需要首先求出区间内每个数字出现的次数,然后再把这个次数存到一个数组中。求次数,不用说,莫队。但是单点修改需要用带修改莫队。需要注意的是,扩展区间的时候,要先扩展,再收缩,否则会出现下标为负数的情况。另外modify函数中,最后是交换两个数字,因为可能以后还得把他们换回来,所以不是赋值。
1 |
|