分块
Wuliwuliii
谁无暴风劲雨时,守得云开见日明!
展开
-
Yuno loves sqrt technology III[Ynoi2019模拟赛]【数组分块】
题目链接 我们想知道一个区间内的众数的个数,那么,我们可以把区间看成两种形式:「完整区间」、「不完整区间」,我们把一个区间分成这样的两种,然后可以预处理出来一个「完整区间」内的众数的个数,那么如果我们现在假设知道了这个答案,岂不是就可以对不完整区间进行查询了,如果一个不完整区间的数,能改变当前答案,那么也就是说明它的后面的第ans个它自己是在区间内的,那么我们可以预处理这个信息即可。 当然,本题有个很坑的地方,切记l和r的大小关系一定要判断。#include <iostream>..原创 2020-08-22 15:17:23 · 159 阅读 · 0 评论 -
[Violet]蒲公英【数组分块】
题目链接 查询时,考虑两种情况:区间包含多个完整的块; 区间不包含完整的块。 对于情况1:如果我们可以处理出来所有的完整的块,那么时间复杂度就是枚举两端的不完整块的复杂度了,也就是说,如果我们可以O(1)的知道中间完整块的最大值的话,那么只需要查两边就可以了,答案一定是中间完整块的答案和两端的不完整块的数中的一个。 对于情况2:既然长度只有根号级别了,直接暴力也未尝不可。 所以,现在的问题转变成处理完整块中的出现最多次的数的个数,以及需要做一个差分的形式,来知道在完整块中出现的值...原创 2020-08-21 10:15:57 · 136 阅读 · 0 评论 -
教主的魔法【模拟】
题目链接 可以说是一些块状数据结构,用分块数组来进行一个维护,然后对于每个被完整覆盖的块用一个永久化标记来进行存储一下,一道模板题。【分块数组模版】#include <iostream>#include <cstdio>#include <cmath>#include <string>#include <cstring>#include <algorithm>#include <limits>#.原创 2020-08-19 20:36:41 · 113 阅读 · 0 评论 -
数列分块入门 5
分块九题之五 首先,分块的复杂度是,但是现在要求根号,对于INT_MAX,取五次根号就可以到1了,所以我们只用判到1即可。#include <iostream>#include <cstdio>#include <cmath>#include <string>#include <cstring>#include &l...原创 2019-11-01 20:44:36 · 361 阅读 · 0 评论 -
数列分块入门 4【注意精度】
分块九题之四 修改的是区间加,求的是区间和。 因为这里有取模,但还有一个就是输出的时候会满足在int范围,但是没说过程中会不会超过int,所以还是需要开long long,不然就真的会WA在30分,然后一脸懵逼。#include <iostream>#include <cstdio>#include <cmath>#include <...原创 2019-11-01 17:05:37 · 160 阅读 · 0 评论 -
数列分块入门 3
分块九题之三 查最大前驱,也就是小于等于它的最小的值。跟分块入门2的做法相似。#include <iostream>#include <cstdio>#include <cmath>#include <string>#include <cstring>#include <algorithm>#inc...原创 2019-11-01 15:40:13 · 546 阅读 · 0 评论 -
数列分块入门 2
分块九题之二 题意:长度为N的区间,有N次操作,每次操作是区间加上一个数,以及查询区间小于x的数的个数。 直接分块维护数列,然后对于那些不完整块,需要额外加,于是加完之后sort一下即可。51 1 1 1 11 1 5 20 1 5 31 1 5 20 1 5 11 2 3 3#include <iostream>#include <cstd...原创 2019-11-01 13:55:35 · 313 阅读 · 0 评论 -
数列分块入门 1
分块九题#include <iostream>#include <cstdio>#include <cmath>#include <string>#include <cstring>#include <algorithm>#include <limits>#include <vector&...原创 2019-10-31 21:35:25 · 111 阅读 · 0 评论 -
Daunting device【2017-2018 ACM-ICPC Latin American D】【分块】
gym 101889 D 人生中的第一个分块题,竟然是训练赛的时候想不到其他该怎么做,又看到N很小,只有1e5,然后想了想好像平时说的是可行的复杂度,于是想了想分块的解法,然后比赛的时候WA在了第19组,是没有加假如这个块比查询区间大的时候,块把查询区间包含了,我们直接在该块内更新即可,还是太young。最后队友上直接1A了(比赛的时候我写没写出来,WA了3次,赛后才写出来呜呜呜)。 ...原创 2019-10-31 19:59:07 · 176 阅读 · 0 评论