数据结构 - 分块
是Elie呀
人生苦短,莫忘初衷;凡事相信,凡事期待。认真做事,认真做人!翁恺老师寄语:“其实学习终归是一件痛苦的事情,所以呢面对学习你还是得要认真,用功,努力地去学习。享受的是什么?是学习之后获得的那种成就,快乐是从成就中来的。”
展开
-
(分块)LOJ#6277. 数列分块入门 1
传送门: LOJ#6277.数列分块入门1 题意:给出一个长为n的数列,以及n个操作,操作涉及区间加法,单点查值。 另外,如图,输入挂能明显提高速率。 #include<cstdio> #include<cstring> #include<cstdlib> #include<cmath> #include<algorithm>...原创 2018-07-31 21:44:36 · 207 阅读 · 0 评论 -
(分块)LOJ#6278. 数列分块入门 2
传送门:LOJ#6278 数列分块入门2 题意:给出一个长为n的数列,以及n个操作,操作涉及区间加法,询问区间内小于某个值x的元素个数。 为了确保更快地找到区间内小于某个值x的元素个数,对序列进行排序,使得块内元素有序。每次操作完毕,只需对残缺块进行重排。因为对残缺块整体加,可能会破坏完整块的有序性;而对整个块加法,不会改变其有序性,所以没必要重排。询问过程完整块二分询问,残缺块暴力枚举。更详...原创 2018-07-31 22:26:02 · 580 阅读 · 0 评论 -
(分块)LOJ#6279. 数列分块入门 3
传送门:LOJ#6279. 数列分块入门 3 题意:给出一个长为n的数列,以及n个操作,操作涉及区间加法,询问区间内小于某个值x的前驱(比其小的最大元素)。 以下引用hzwer大佬的解答: n<=100000其实是为了区分暴力和一些常数较大的写法。 接着第二题的解法,其实只要把块内查询的二分稍作修改即可。 不过这题其实想表达:可以在块内维护其它结构使其更具有拓展性,比如放一个 se...原创 2018-08-01 19:56:17 · 298 阅读 · 0 评论 -
(分块)LOJ#6280. 数列分块入门 4
传送门:LOJ#6280. 数列分块入门 4 题意:给出一个长为n的数列,以及n个操作,操作涉及区间加法,区间求和。 和数列分块入门3相比,基本没什么变化。对于区间求和还是整块的进行求,残缺的部分进行暴力枚举。对了不要忘记加上tag[]的值。 #include<iostream> #include<cstdio> #include<algorithm> ...原创 2018-08-01 19:57:56 · 184 阅读 · 0 评论 -
(分块)LOJ#6281. 数列分块入门 5
传送门:LOJ#6281. 数列分块入门 5 题意:给出一个长为n的数列,以及n个操作,操作涉及区间开方,区间求和。 对于区间开方,对于整个块似乎不能进行操作。所以得对整个块进行暴力修改。 这个算法优化的关键点就是无论哪个数经过多次开方都会变成0或1,这样的话再怎么开方,块内的这些数都不会怎么改变.我们可以对块内元素经过修改是否都变为0或1进行标记,如果整个块都变为0或1,那么再对块进行修改...原创 2018-08-01 20:00:32 · 333 阅读 · 0 评论 -
(分块)LOJ#6282. 数列分块入门 6
传送门:LOJ#6282. 数列分块入门 6原创 2018-08-01 20:05:59 · 162 阅读 · 0 评论 -
(分块)LOJ#6283. 数列分块入门 7
传送门:LOJ#6283. 数列分块入门 7 题意:给出一个长为n的数列,以及n个操作,操作涉及区间乘法,区间加法,单点询问。原创 2018-08-01 20:23:27 · 155 阅读 · 0 评论 -
(分块)LOJ#6284. 数列分块入门 8
传送门 :LOJ#6284. 数列分块入门 8原创 2018-08-01 20:24:51 · 181 阅读 · 0 评论 -
(分块)LOJ#6285. 数列分块入门 9
传送门:LOJ#6285. 数列分块入门 9 题意:给出一个长为n的数列,以及n个操作,操作涉及询问区间的最小众数。原创 2018-08-01 20:27:53 · 337 阅读 · 0 评论