题目大意:
和我一维莫队(复杂度计算在内)(刚写的,很烂,但还是想要点击量)用的例题一模一样,只不过是二维。
思路:
好像是雅礼的题,正解恶心人,分两个方法分别算出现次数多和少的数。
但是呢,我懒,还是二维莫队(真的就是把一维莫队搬上二维,两个左右下标)了。
排序是先排第一维,在相同时排第二维。
复杂度证明和一维莫队基本一致。
再在上面乘以一个n(就是改变一维下标,对另一维进行O(n)查询),
但这道题的n只有200。
复杂度为O(n*(q*sqrt(n)+n*sqrt(n)))
2秒应该能过。
注意(while的顺序)
先加后减:因为如果有的减在加的前面就会出现错误
错误例子:
如果一维右下标减到左下标左边。
然后又加另一维,然后
虚空加减
代码: