
分块 莫队
分块 莫队
蒋卫升
这个作者很懒,什么都没留下…
展开
-
洛谷 P2709 小B的询问 (莫队模板题)
linklinklink题意:见题面题解:莫队模板#include <bits/stdc++.h>#define ll long long using namespace std;const int maxn = 5e4 + 10;int c[maxn], a[maxn], n, m, k, block;ll ans[maxn], sum;struct node { int l, r, id; bool operator<(const node& t) co原创 2020-06-16 20:52:43 · 135 阅读 · 0 评论 -
LOJ 数列分块入门 2
link需要思考的问题:完整的块如何处理不完整的块如何处理需要预处理什么东西题解预处理对于每一块,我们用一个vector保存这个块中所有的值,并且对这个vector排序。目的是为了方便我们后面的二分操作。对于完整的块更新:我们用lz[i]lz[i]lz[i]保存第i块整块要加的值。查询:lowerlowerlower_ boundboundbound查询这个块中小于c减lz[i]的值的个数,因为本来这个块中所有的数都要加lz[i]。对于不完整的块更新:直接更原创 2020-08-17 16:45:34 · 229 阅读 · 0 评论 -
LOJ 数列分块入门 1
link分块优雅的暴力,对于一个数列,他不是一个元素一个元素处理,而是分成若干块,成块成块的处理,以此达到降低时间复杂度的目的。需要处理的信息首先,我们需要处理划分的块的大小—block(一般是根号n)、块的数目、每一个元素对应第几块,然后,每一块的左端点和右端点。需要思考的问题:完整的块如何处理不完整的块如何处理需要预处理什么东西题解完整的块:更新:我们用lz[i]lz[i]lz[i]保存第iii个块整块都要加上某个数的总和。不完整的块:更新:直接更新。查询:返回这个原创 2020-08-17 15:40:42 · 247 阅读 · 0 评论