P7721 [Ynoi2007] rcn


二维带权数颜色。

根据套路,采用莫队套二维分块,没写过去看 P7448

一维带权数颜色谁都会,记每个颜色的上一个与其颜色相同的位置 /(pre/),问题转化为查询区间 /([l,r]/) 中 /(pre<l/) 的数的个数。

然后转成二维数点的形式,有 /(n/) 个点 /((i,pre_i)/),查询 /([l,r][0,l)/) 这个矩阵的和,带修。

再考虑二维,选一维度跑莫队。

剩下的就是维护 /(pre/),然后动态二维数点,跑 /(/mathcal O(1)-/mathcal O(/sqrt n)/) 二维分块即可。

对于散块,考虑到 /(pre/) 独特的性质:除了有多个位置 /(pre_i=0/) 之外其余 /(pre/) 互不相等。于是对于 /(pre_i=0/) 的情况,写个一维分块维护,其他均摊复杂度正确。

考虑到这个莫队删除容易,增加爆炸,故使用回滚莫队。

时间复杂度 /(/mathcal O(n/sqrt n)/),空间复杂度 /(/mathcal O(n)/)。

CODE

原创文章,作者:wure,如若转载,请注明出处:https://blog.ytso.com/268336.html

(0)
上一篇 2022年6月19日
下一篇 2022年6月19日

相关推荐

发表回复

登录后才能评论