摘要: P5500 真正的Oier从不女装 众所周知,女装只有0次和无数次! 题目看这里 题目要求我们维护一个序列,支持区间赋值和查询,每次查询进行 \(k\) 次女装操作之后,序列中最长连续段(数字相同视为连续)的长度。 对于一次女装操作,定义为从给定区间 \([l,r]\) 中挑选一个点 \(p\),分 阅读全文
posted @ 2025-05-29 17:33 Yun_Mo_s5_013 阅读(26) 评论(0) 推荐(0)
摘要: cdq分治 cdq分治是一种特殊的分治方式,可以有效处理偏序问题,可以一定程度上替代一些复杂的数据结构。cdq分治的缺点在于,必须保证能够将数据离线处理。 核心思想 和分治类似,对于待处理的区间,将其分为左区间 \([l,mid]\) 和右区间 \([mid+1,r]\) 并对区间内的子问题进行分治 阅读全文
posted @ 2025-05-28 17:19 Yun_Mo_s5_013 阅读(30) 评论(0) 推荐(0)
摘要: 二维树状数组 本篇博客旨在实现一种玄妙的黑科技:二维树状数组,支持区间修改和区间查询 虽然这个东西叫做树状数组,但其实和普通树状数组除了\(lowbit\)之外大约没什么特别相似的东西…… 我们考虑,普通的树状数组中,我们用\(t[x]\)维护了右端点为\(x\),长度为\(lowbit(x)\)的 阅读全文
posted @ 2025-05-15 16:32 Yun_Mo_s5_013 阅读(65) 评论(0) 推荐(0)
摘要: P3157 [CQOI2011] 动态逆序对 一道相当不错的数据结构综合。题目要求我们实现一个带修的逆序对查询的功能。先从静态逆序对开始思考。对于静态逆序对,显然我们可以使用树状数组 树状数组求逆序对 在值域上开一个树状数组,正序扫整个序列,每次对于当前序列中的值求一次后缀和(也就是\(sum[n] 阅读全文
posted @ 2025-05-10 08:50 Yun_Mo_s5_013 阅读(43) 评论(0) 推荐(0)
摘要: 什么是FHQ FHQ是一种特殊的Treap(树堆),其特色在于不需要进行节点旋转的操作,而 只依靠分裂和合并维护平衡。FHQ具有树堆的一切性质,包括本身权值满足 平衡树性质,并且堆权值(优先级)满足堆性质(小根堆或大根堆) 关于Treap和随机化堆权值 对于一颗朴素的二叉搜索树,每插入一个节点,都需 阅读全文
posted @ 2025-05-08 10:54 Yun_Mo_s5_013 阅读(64) 评论(0) 推荐(0)
摘要: 线段树优化建图 顾名思义,就是利用线段树建图,达到一些特殊的目的 常见的应用就是,对于一个点向一个区间连边,或者一个区间内的所有点向某一个点连边,直接连会TLE,那么就可以用到线段树优化建图 基本思想 先建一棵线段树。假如现在我们要从8号点向区间\([3,7]\)的所有点连一条权值为w的有向边 把区 阅读全文
posted @ 2025-05-07 22:02 Yun_Mo_s5_013 阅读(77) 评论(0) 推荐(0)
摘要: Segment Tree Beats 吉斯机线段树,一种特化的线段树,可以用来维护区间历史最值,以及进行对区间内每个数将其和给定参数取最值的操作 区间最值操作 区间最值操作,给定一个数\(k\),给出区间\([l,r]\),令区间内的每个数\(x_{i}\)变为\(\min(x_{i},k)\)或\ 阅读全文
posted @ 2025-04-19 19:35 Yun_Mo_s5_013 阅读(210) 评论(0) 推荐(0)
摘要: 线段树分裂 顾名思义,就是把一颗线段树按照排名分成两棵树,通常会和线段树合并拌着吃。用官方一点的话来说,线段树分裂是线段树合并的逆运算,一般用于线段树维护的可重集,可以把一个可重集按照大小拆分成两个子集分别维护 注意当分裂和合并都存在时,我们在合并的时候必须回收节点,以避免分裂时会可能出现节点重复占 阅读全文
posted @ 2025-04-19 08:41 Yun_Mo_s5_013 阅读(89) 评论(0) 推荐(0)
摘要: 线段树合并 顾名思义,就是把两颗线段树合并起来变成一颗,可以较为有效地配合动态开点维护权值线段树 线段树合并的基本规则并不难:如果要合并的两颗线段树都有值,就直接把两颗线段树相加,左右子树也分别相加,一直加到叶子节点就行。如果一颗有之另一颗没有,就把空的那棵树指向有值的那颗树。如果两棵树都没有值,退 阅读全文
posted @ 2025-04-10 19:55 Yun_Mo_s5_013 阅读(34) 评论(0) 推荐(0)
摘要: 网络流 网络流是一类特殊的有向图,其最大的特点是存在两个特殊的点:源点和汇点。源点只有出边,汇点只有入边,使得整个网络流图拥有了一个类似于河道的结构,也就是很多条并行的源点指向汇点的路径 对于一个网络\(E\),做出如下规定: 给E中的每条边都赋予一个权值w,称为每条边的容量 定义流为边集到自然数集 阅读全文
posted @ 2025-03-31 20:59 Yun_Mo_s5_013 阅读(59) 评论(0) 推荐(0)