数据结构
文章平均质量分 80
伍叁壹_
这个作者很懒,什么都没留下…
展开
-
【CF1051G】 Distinctification 题解
线段树合并+并查集维护。原创 2022-08-02 15:37:06 · 205 阅读 · 1 评论 -
【CF1635F】 Closest Pair 题解
找性质规律+单调栈+线段树。原创 2022-07-20 09:17:26 · 244 阅读 · 0 评论 -
【CF780G】Andryusha and Nervous Barriers 题解
模拟+线段树套小根堆。原创 2022-07-20 08:21:11 · 121 阅读 · 0 评论 -
线段树 整理笔记
p.s. 代码块缩进有问题,但不影响正常阅读,请忽略。P4513 小白逛公园:区间询问 + 单点修改。对于询问区间内最大连续权值和,按照套路,维护 ti.lmaxt_i.lmaxti.lmax 与 ti.rmaxt_i.rmaxti.rmax,注意在查询的时合并答案要分情况。具体地,看代码吧(实在描述不来):区间乘 + 区间加 + 区间查询P2023 [AHOI2009] 维护序列:模板。线段树乘法不过是多加了一个乘法懒标记,维护的时候复杂了些。区间除法[雅礼集训 2017原创 2022-07-07 13:47:12 · 119 阅读 · 0 评论 -
【LG-P2839 [国家集训队]】middle
传送门:洛谷 P2839 [国家集训队]middle二分求解中位数 + 主席树维护Solution1 求中位数拿到题目首先肯定会去思考怎么求区间中位数。按照以往求中位数的方法——对顶堆,显然不行,时间肯定会炸。那就要引入一个新的求中位数的方法了:二分中位数大小,然后将大于等于该数的数的值设为 1,否则设为 -1,然后求区间的和,若大于等于 0,则意味着真正的中位数一定大于等于该数,否则小于该数,时间复杂度同对顶堆一样,O(nlogn)O(nlogn)O(nlogn)。2 线段树维护这时候我们原创 2022-05-18 13:31:57 · 89 阅读 · 0 评论 -
主席树(可持久化线段树)
前言真不是有目的地学习主席树的…(实在是因为它太上头了)《关于我某天第二节晚修一直在看<进阶指南>可持久化数据结构这章然后学了主席树这件事》所以新学一个数据结构只要一整节晚修。主席树也叫可持久化线段树、函数式线段树。其思想与可持久化 Trie\mathtt{Trie}Trie 相似。其实,就是在普通线段树的基础上,修改了一下 update\mathtt{update}update 操作,使得它成为可持久化数据结构:每次新建一个根节点,保存此次修改之后的状态。在遍历线段树的时候,对更原创 2022-03-19 08:17:27 · 140 阅读 · 0 评论 -
[雅礼集训 2017 Day1]市场
线段树的除法:EG:(来源:GDEZ2021新初一第一次测试 第三题)update:1.区间加2.区间除(转化为区间减。当区间内最大值除完后与最小值除完后一样时,存下除后最大值比原先要少的值,再放入 lazytaglazytaglazytag 中即可 记得负数向下取整用 floor((double)x/y)floor ((double)x/y)floor((double)x/y) )query:1.区间和 2.区间最小值题目:Problem C: [雅礼集训 2017 Day1]市场$ C原创 2022-03-18 13:12:03 · 105 阅读 · 0 评论 -
分块练习整理
定义分块,无非就是将长为 nnn 的序列分为长度为 n\sqrt{n}n 的若干小块,以每次处理或查询时提高效率。说白了就是优雅的暴力。块内排序一、Problem G: [loj6278]数列分块入门 2给出一个长为 nnn 的数列,以及 nnn 个操作,操作涉及区间加法,询问区间内小于某个值 xxx 的元素个数。思路考虑到查询,就要使块内有序,即维护块的单调性。预处理:逐一对块内排序,复杂度 O(nlogn)\text{O(nlogn)}O(nlogn)。所以修改:散块:暴力,逐一原创 2022-02-12 16:31:05 · 195 阅读 · 0 评论 -
单调队列用法整理
双端队列 + pairpair 类型的变量下可以直接进行比较。在不同 pair 的比较中,自动把 x.first 当作第一关键字,x.second 当作第二关键字。1 定义队列deque <pair <int, int> > q;2 定义 pairpair <int, int> nw = make_pair (x, y);3 前端、后端插入q.push_back (make_pair (x, y));q.push_front (make_pair (x,原创 2022-02-12 16:37:19 · 228 阅读 · 0 评论 -
【LG-P5072 [Ynoi2015]】盼君勿忘
做的第一道莫队题 QwQ。P5072 [Ynoi2015] 盼君勿忘给定一个序列,每次查询一个区间 [l,r][l,r][l,r] 中所有子序列分别去重后的和 mod p\bmod\ pmod p。思路莫队 + 手写双向链表1题意有点绕,但注意是“分别去重”。那么假设一个数 xxx,它在长为 nnn 的序列中出现了 mmm 次,即一共有 2n2^n2n 个子序列,不含 xxx 的子序列有 2n−m2^{n-m}2n−m 个。则 xxx 在所有去重后的子序列中出现了 (原创 2022-03-17 13:03:20 · 3139 阅读 · 0 评论