![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
分块
hollowstory
这个作者很懒,什么都没留下…
展开
-
SPOJ-ZQUERY(分块)
题意:有一个由1和-1组成的数列,现给M个询问(L,R),求区间(L,R)中和为0的最长子串长。分块的思想,真的很神奇。先考虑一个普通的询问,求一遍前缀和,记录下所有每个前缀和的所有下标,遍历一次,二分得结果,复杂度为nlgnnlgn。如果预处理出一个区间,那么对于所有包含这个区间的询问,复杂度为两区间之差乘个log。那么,当预处理好的元区间足够小时,可以有很大的优化。设元区间大小为k原创 2017-09-15 19:41:17 · 554 阅读 · 0 评论 -
Codeforces 474F(分块)
题意:给长度为N的数列,t个询问[l,r],求区间[l,r]中不能整除区间中其它数的数有多少个。这题和之前一道分块题简直一模一样,于是就用分块做了。没个询问的答案,就是区间长度减去值为区间gcd的数的个数。那么预处理出每段的答案及这段的gcd,可以很容易推出答案。#include<bits/stdc++.h>using namespace std;const int N = 5e5 + 20;co原创 2017-09-19 18:42:05 · 448 阅读 · 0 评论