Libre数论分块
分块算法是一种很常见的根号算法,时间复杂度带根号。除此之外常见的就是莫队。分块可以解决许多高级数据结构可以解决甚至解决不了的问题,用处很大,是非常“优雅”的暴力
良月澪二
EU gosto de música
展开
-
LOJ #6283. 数列分块入门 7
题目链接:传送门 区间加区间乘单点修改 注意改标记就好 别的都一样 #include <iostream> #include <cstdio> #include <cstring> #include <cstdlib> #include <complex> #include <algorithm> #include <c...原创 2019-03-22 19:37:40 · 176 阅读 · 2 评论 -
LOJ #6282. 数列分块入门 6
题目链接:传送门 支持单点插入,单点询问 一个短短的splay就好了 可是我们是来学分块的 这里只有网上的普遍做法 还是用vector维护每个块内的维护 插入的时候找到在哪个块内 如果插入过多导致块很大就全部重构 /** * @Date: 2019-03-22T16:21:58+08:00 * @Last modified time: 2019-03-22T16:48:25+08:00 ...原创 2019-03-22 16:59:07 · 263 阅读 · 0 评论 -
LOJ #6281. 数列分块入门 5
题目链接:传送门 区间求和,区间开方 显然一个数开不了几次就变成1了 所以再维护一个块内是不是都变成了1 到时候就可以少更新许多 #include <iostream> #include <cstdio> #include <cstring> #include <cstdlib> #include <complex> #include &...原创 2019-03-16 22:06:33 · 194 阅读 · 0 评论 -
LOJ #6280. 数列分块入门 4
题目链接:传送门 区间加法,区间求和 每个块再维护一个sum数组 修改的时候看着改就行了 细节细节 /** * @Date: 2019-03-16T20:22:50+08:00 * @Last modified time: 2019-03-16T20:22:52+08:00 */ #include <iostream> #include <cstdio> #inc...原创 2019-03-16 20:36:30 · 174 阅读 · 0 评论 -
LOJ #6278. 数列分块入门 2
题目链接:传送门 区间加法,询问区间内小于某个值x的元素个数 我们用一个vector来维护每个块内的值 每个块内保证有序 修改的时候直接覆盖修改 统计答案的时候用lower_bound /** * @Date: 2019-03-16T14:07:56+08:00 * @Last modified time: 2019-03-16T14:07:56+08:00 */ #include &l...原创 2019-03-16 14:23:28 · 181 阅读 · 0 评论 -
LOJ #6277. 数列分块入门 1
题目链接:传送门 单点查询区间修改 分块算一种数据结构? 不知道 但是数据结构能做的题基本都能做 就是效率的问题 根号和log怎么比 第一道分块 分块的思想就是对整个序列分成若干块 每次操作只修改每整个块 对于两端块外的元素暴力修改 因为它们每端的长度不会超过一个块 思想很好懂 分块需要注意的就是边界问题 +1或-1漏一个就很麻烦了 /** * @Date: 2019-03-16T08:02...原创 2019-03-16 09:05:10 · 191 阅读 · 0 评论