
分块
ACM败犬
这个作者很懒,什么都没留下…
展开
-
Codeforce 1270 F. Awesome Substrings(思维 + 分块暴力)
要求的是所有的 l,r 使得:r−l=k∗(sum[r]−sum[l])r - l = k * (sum[r] - sum[l])r−l=k∗(sum[r]−sum[l])设置一个块大小 block,枚举1的个数 x,按block分块若 x≤blockx \leq blockx≤block,O(n) 枚举左端点统计所有右端点,复杂度为 O(block∗n)O(block * n)O(bl...原创 2019-12-30 11:38:50 · 606 阅读 · 0 评论 -
loj 6344 :异或和(类欧几里得(a,b有负数情况的分析) + 分块 + 卡常技巧)
(太菜了,群友指点两小时才过)按套路,将取模拆开,式子变成:⨁i=1n(n−i∗⌊ni⌋)\displaystyle\bigoplus_{i = 1}^n (n - i*\lfloor\frac{n}{i}\rfloor)i=1⨁n(n−i∗⌊in⌋)然后就可以按套路,按位考虑,计算每一位为 1 的数字的个数:∑i=0n⌊n−⌊ni⌋∗i2p⌋\displaystyle\sum_{i ...原创 2019-10-31 15:20:54 · 301 阅读 · 0 评论 -
洛谷P3396 :哈希冲突(根号算法,分块)
题目描述众所周知,模数的hash会产生冲突。例如,如果模的数p=7,那么4和11便冲突了。B君对hash冲突很感兴趣。他会给出一个正整数序列value[]。自然,B君会把这些数据存进hash池。第value[k]会被存进(k%p)这个池。这样就能造成很多冲突。B君会给定许多个p和x,询问在模p时,x这个池内数的总和。另外,B君会随时更改value[k]。每次更改立即生效。保证1 &l...原创 2019-05-15 23:05:49 · 194 阅读 · 0 评论 -
分块入门
分块是一种暴力,可以像线段树那样维护区间信息,复杂度不及线段树,但维护的东西不需要满足区间加法。例题1:POJ3468题意:有一个序列,有两种操作,一种是查询区间和,一种是区间内所有数值加上v,很明显的线段树裸题,但这题也可以用分块做。分块和线段树一样,只不过一个序列只分一次块,不像线段树分到不能再细分,因为是区间更新,这里也需要laze标记。更新的时候,只有整个完整的块都被更新的才需要加l...原创 2019-05-15 11:47:36 · 322 阅读 · 0 评论