
分块
文章平均质量分 80
zhhx2001
这个作者很懒,什么都没留下…
展开
-
codevs2969角谷猜想(记忆化搜索+分块)
所谓角谷猜想,即给定一个正整数 n,对 n 反复进行下列两种变换:1)如果n是偶数,就除以2;2)如果n是奇数,就乘以3加1。最后的结果总是1。我们把从 n 变换到 1 所需要进行的变换次数称做 n 的变换长度,如数字 7 的变换为:7-22-11-34-17-52-26-13-40-20-10-5-16-8-4-2-1共进行了 16 次变换,因而 7 的变换长原创 2016-06-21 18:37:58 · 504 阅读 · 0 评论 -
bzoj3343(第一道分块)
第1行为两个整数N、Q。Q为问题数与教主的施法数总和。 第2行有N个正整数,第i个数代表第i个英雄的身高。 第3到第Q+2行每行有一个操作:(1) 若第一个字母为“M”,则紧接着有三个数字L、R、W。表示对闭区间 [L, R] 内所有英雄的身高加上W。(2) 若第一个字母为“A”,则紧接着有三个数字L、R、C。询问闭区间 [L, R]原创 2016-09-11 11:31:34 · 333 阅读 · 0 评论 -
bzoj2453/2120(分块)
给出一个数列,求一个区间不相同数字的个数,包含修改操作——最多1000次修改;数字最大是100W 用pre[i]记录前一个和i相同颜色的球的所在位置询问l到r时,如果pre[i]利用这种思路我们可以。。。分块每一块内按pre[i]排序,然后分块做就行了 不过正解是树套树,主流的思路还是一样,就是通过pre来做,只不过用不同数据结构维护罢了。 #include#原创 2016-09-11 16:25:45 · 298 阅读 · 0 评论 -
bzoj2388(凸包+分块)
真心好难,代码不好写。最后算是抄的clairs的代码。考虑分块,每块维护两个标记ts,tdts,td。那么对于块中一个位置ii,它的实际值为i×td+ts+vii×td+ts+vi。修改的时候,对于整块,直接打标记,对于零散的暴力修改,然后重构凸壳,时间复杂度O(n√)O(n)。查询的时候在凸壳上二分即可,时间复杂度O(n√logn)O(nlogn)。 #includ原创 2016-09-15 00:35:50 · 593 阅读 · 0 评论