
区间查询
天宇skyblue
这个作者很懒,什么都没留下…
展开
-
hdu4638 莫对算法 离线区间查询(非更新)
题目大意:给你一个1~n的排列,m次询问,问l~r区间内连续块的个数。如区间里面的元素为3 1 8 2 7,则答案是2. 3 1 2 连续为一块, 8 7 连续为一块 思路: 线段树也许可以,不过是学习莫对算法写的。下面说一下莫对算法的思想。 1、首先将n个数分为sqrt(n)快,每块编号0~sqrt(n)。然后将所有查询操作保存,对所有的查询进行这样的排序;主关键字:块的原创 2016-05-17 21:32:02 · 747 阅读 · 0 评论 -
codeforces86D 莫队算法
题目大意:给你n个数,m次询问,Ks为区间内s的数目,求区间[L,R]之间所有Ks*Ks*s的和。1 思路:直接用莫队算法,前面的博文讲过原理。这里再说一下增加和删除操作。因为要求Ks*Ks*s,所以每次增加一个需要在原有结果上加(Ks*Ks*x - (Ks-1)*(Ks-1)*x),删除的话也是要相应的减去。 莫队算法还是很好用的。 #include #include #include原创 2016-05-18 09:46:29 · 916 阅读 · 0 评论 -
hdu5057 分桶法+(平方分割)
题目链接;http://acm.hdu.edu.cn/showproblem.php?pid=5057 题目大意:N个数,M 次操作(1 思路:分块处理。将n分为sqrt(n)块。每块单独处理。每次查询将边界块暴力依次查询,中间块用预处理的结果直接查询。这样复杂度达到了 O(Q*(n/b+b))。 每次更新操作是将原数据的贡献减去,然后将新的贡献加上去。。刚好卡过…………联系一下分块法,平方原创 2016-05-18 21:05:57 · 376 阅读 · 0 评论 -
cug1702&&CCNU校赛J题 分块
题目大意: 思路:平方分割,区间更新是用lazy标记,需要时更新。这个需要不仅仅是在query是需要,update时也可能需要,如处理两端的时候就需要。标记的同事需要记录每次的p , q , r , s对a[i],b[i]的影响,相当于维护一个二维矩阵的值,这里就不推了,写一遍就知道了,一个简单的代换。还有一个就是对2^32取模,直接无符号整形即原创 2016-05-19 23:28:02 · 299 阅读 · 0 评论 -
hdu5726 GCD 多校1
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5726 题目大意:给你一个数列,问有多少个子区间的GCD等于给定区间的GCD 思路:区间GCD用线段树,查询多少个子集可以暴力预处理出所有区间的GCD,处理时,利用滚动的map记录到达当前位置的gcd和数量,代码里面用f表示 #include #include #include #i原创 2016-07-23 09:03:24 · 313 阅读 · 0 评论