Forever Young

随笔分类 -  技巧性处理——分块

摘要:前言 本文是对2013国家集训队论文中罗剑桥的论文——「浅谈分块思想在一类数据处理问题中的应用」的一些摘抄和整理。 引言 分块的核心思想 分块思想和传统的数据结构一样将数据有序化和层次化,但是方式有所不同。 核心思想:将一个集合划分成若干个规模较小的子集。 分块的良好性质 若子集规模很小,对每个子集 阅读全文
posted @ 2020-09-13 19:07 Loceaner 阅读(342) 评论(4) 推荐(2)
摘要:恶心至极!!!!!!!! 思路 求 \(\sum\limits_{i = 1}^{n} (n \mod i)\sum\limits_{j=1}^{m}(m\mod j)[i\neq j]\) 假设没有限制情况$i\neq j$ \(\sum\limits_{i = 1}^{n} (n \mod i) 阅读全文
posted @ 2020-04-20 15:59 Loceaner 阅读(115) 评论(0) 推荐(0)
摘要:目录 思路 && 代码 数论分块 算是数论分块的模板题了吧 20分做法 纯暴力,直接枚举,然后每个数 \(O(\sqrt{n})\) 判断,时间复杂度$O(n \sqrt)$ 需要注意不要闷着头一直枚举到$\sqrt$,如果$n$的约数$i$的平方恰好等于$n$,只加一个就足够了 int x, y, 阅读全文
posted @ 2020-04-19 09:08 Loceaner 阅读(198) 评论(0) 推荐(1)
摘要:LOJ #6280. 数列分块入门 4 思路&&代码 区间修改+区间查值 这个就是在数列分块入门$1$的基础上加了一个$sum[i]$ 先分块,把这$n$个数分成$\sqrt$个块,用$add[i]$表示这个块修改值的和(增量标记),用$sum[i]$表示这个块内数的和 如果第一题会了,这个也很容易 阅读全文
posted @ 2020-01-19 16:54 Loceaner 阅读(139) 评论(0) 推荐(0)
摘要:LOJ #6279. 数列分块入门 3 思路&&代码 区间修改+询问前驱 $hzwer$大佬说这里的前驱是指严格小于当前值的最大的值 先分块,分成$\sqrt$个块,分的时候,每个块用一个$set$来维护块内的值 区间修改的时候不足一个块的把$set$中的原数删掉,然后加上$c$,再放进去,一整个块 阅读全文
posted @ 2020-01-18 22:00 Loceaner 阅读(236) 评论(1) 推荐(0)
摘要:LOJ #6278. 数列分块入门 2 思路&&代码 区间修改+询问区间内小于某个值x的元素个数 还是先分块,分成$\sqrt$个块,分的时候,每个块用一个$vector$来维护块内的值 每个块内排序,保证块内是有序的(便于用$lower_bound$统计答案),因为分好了这个块以后如果整体修改不会 阅读全文
posted @ 2020-01-18 21:48 Loceaner 阅读(228) 评论(0) 推荐(0)
摘要:LOJ #6277. 数列分块入门 1 思路&&代码 区间修改+单点查值 先分块,把这$n$个数分成$\sqrt$个块,用$add[i]$表示这个块修改值的和(增量标记) 区间修改:如果是修改整个块,则直接修改这个块的增量标记,如果不是一整个块,就暴力修改值,如果是多个块,是整块的修改增量标记,不是 阅读全文
posted @ 2020-01-18 14:53 Loceaner 阅读(124) 评论(0) 推荐(0)