随笔分类 -  分块

摘要:Description: 有一个长度为n的序列, 有一些询问l r a b,表示区间[l,r]中数权值在[a,b]中的数的种类数。 Solution: nsqrt(n)logn的很容易想到,但是会超。 考虑莫队时如何快速计算答案?把权值分块,块内统计答案,每次询问只需sqrt(n)。 故总的时间复杂 阅读全文
posted @ 2017-04-10 22:04 Splay 阅读(354) 评论(0) 推荐(0)
摘要:Description 有一个长度为n的序列,序列每个元素的范围[1,c],有m个询问x y,表示区间[x,y]中出现正偶数次的数的种类数。 Solution 大力分块解决问题。 把序列分块,f[i][j]表示第i块到第j块的答案,并记录块的前缀数的出现次数。 f[i][j]直接暴力算,块的前缀数的 阅读全文
posted @ 2017-04-10 20:19 Splay 阅读(345) 评论(0) 推荐(0)
摘要:题意: 有一个长度为n的序列,有n个函数f(l, r) = Σai (l <= i <= r),有两种操作,把某个数修改,查询区间函数和。 分析: 这是一道很经典的分块题目,具体算法就是大力分块。 把序列分块,块内记录数的前缀和,并记录块间的前缀和,对于一个函数的计算可以O(1)。 把函数分块,块内 阅读全文
posted @ 2017-04-09 22:15 Splay 阅读(419) 评论(0) 推荐(0)