04 2024 档案
P3293 [SCOI2016] 美味
摘要:经典题, 和 主席树的结合。 考虑一个没有偏移量的时候如何计算,其实就是一个裸的可持久化 。 但是有了偏移量就不一样了,这会导致直接改变 的结构,十分不好做。 套路的逐位考虑,从高位枚举到低位。假设当前找到的数为 \(\r
主席树学习笔记
摘要:link 简介: 主席树是一种可持久化数据结构,全称为可持久化权值线段树,支持查询历史版本内信息,单点修改同时新建版本等操作,也是一种函数式线段树, 可支持完全持久化。 原理: 首先考虑朴素的做法,每次新建版本时都 copy 一份,并且在这个 copy 下来的版本上面进行操作。这种做法空间复杂度是很
CF1709E XOR Tree
摘要:link Solution: PART 1: 转化 首先套路地预处理出每个节点到根节点( 号节点)路径上的点权异或和 。 可以发现题意容易转化为:给定一棵 个节点的树,问你最少可以把它分成多少个联通块,使得每个连通块中的节点两两路径上的异或和不为 0。 易知对
SP1557 GSS2 - Can you answer these queries II
摘要:link 题目大意: 给一个 个元素的序列, 次询问 的最大子段和(相同元素只算一个)。 . 解法: 首先考虑最大子段和的经典动态解法:维护 \(pre_i,suf_i,s
三维偏序
摘要:cdq 分治: 一个长度为 的序列,统计有一些特性的点对 的数量/找到一对点 使得一些函数的值最大。对于这一类问题,我们考虑使用 分治思想来解决。 什么是 分治思想? 解决这种
FHQ Treap
摘要:P3369 【模板】普通平衡树 前言: 平衡树是一种二叉搜索树,通过一些方法来做到快速维护单点或区间信息和快速查询单点或区间信息,其中包括排名、前驱等等。在 库中虽有实现,但是由于封装的太好以及是可持久化数据结构的基础,还是需要学习的。 FHQ Treap: FHQ Trea
树链剖分
摘要:link1 link2 前言: 树链剖分实际上就是一种将树形结构剖分成一条条链状结构,并用线性数据结构来快速维护信息。 重链剖分: 一些定义: 重儿子:一个节点的重儿子定义为它的子节点中子树节点最大的节点。 轻儿子:一个节点除重儿子外的所有儿子 重边:一个节点到它的重儿子的边即为重边 轻边:一个节点
P1248 加工生产调度
摘要:link Solution: 贪心神仙题。 tips: 对于贪心题目,先考虑两个东西时的情况,一般是可以扩展到多个东西的情况的。 此时我们考虑两订单 和 。 先 后 : 先 后 \(
CF1591F Non-equal Neighbours
摘要:题面:this solution: 容斥神仙题qwq 考虑全集-补集,此时补集就是一些集合的并,可使用容斥 设至少 个点满足 时方案数为 直接求不好求,考虑转化: 有 个点时就把原序列隔成了 段,段内无所谓,但
CF1209E2 Rotate Columns (hard version)
摘要:题意: 题目 分析: 首先我们看看数据范围: 这很显然是一个十分小的一个范围,提示我们可以使用各种怪解时间复杂度较大的解法去做。 先不考虑 的数据范围,我们可以很显然的想出一个状压 dp: 设 考虑到第 列时,是行状态为
矩阵
摘要:矩阵的定义: 矩阵(matrix)其实就是一个二维数组,第 行 列的元素即为 矩阵的运算: 加减: 它们均为逐个元素进行。只有同型矩阵之间可以对应相加减。 转置: 矩阵的转置,就是在矩阵的右上角写上转置「T」记号,表示将矩阵的行与列互换。 对称矩阵转置
割点&&桥&&边双&&点双
摘要:定义: 割点:将原图中的某一点以及它所连的边删除后,原图不连通。 桥:将原图中的某一边删除后,原图不连通。 边双连通分量:原图中意删除一边后还连通的极大连通子图。 点双连通分量:原图中任意删除一点后还连通的极大连通子图。 求法: 割点: 考虑原图的 dfs 生成树,对于树边更新 : \(low[u]
欧拉路径&&欧拉回路
摘要:定义: 欧拉路径:指图中的一条路径,使得所有边都被经过且只经过一次 欧拉回路:指图中的一条欧拉路径,且起点和终点相同。 欧拉图:指有欧拉回路的图 半欧拉图:指有欧拉路径但没有欧拉回路的图 性质: 1.如果一个无向图是欧拉图,那么所有节点的度数均为偶数 2.如果一个无向图是半欧拉图,那么除了两个节点的
强连通分量
摘要:定义: 强连通指的是对于一个有向图,每个点都有路径到另外一个点。 强连通分量则指的是对于一个图,它的极大强连通子图。 tanjan 求法: 对于一个图,考虑他的 dfs 生成树(即为对原图进行 dfs 的一棵树)。 那么对于这棵树,搜索时会出现四种边: 树枝边:搜索到没被访问过的节点,且在树中是当前
笛卡尔树
摘要:笛卡尔树实际上就是对于多个二元组 的一棵树,使其所有 值满足二叉搜索树的性质,且所有 值都满足小根堆的性质。 在构建时,对于右链上的元素,自底向上一定是 值由小到大的,且一定 值从小到大。 所以我们按 值从小到大
容斥原理
摘要:容斥原理: 容斥原理是一种在知道所有集合之间的交,求集合之间的并的数学方法。(注:交即为两个集合之间相同的部分,记作 ) problem: 设 中元素有 种不同的属性,而第 种属性称为 ,拥有属性 的
网络流小记
摘要:I.基本定义: 网络:一张有向图。 流量:经过一条边的流的大小,一条边 的流量记为 , 一个网络的流量定义为 。 容量:一条边的流量上限,一条边 的容量记为 。 费用:经过一条边单位流量的
网络流做题记录
摘要:网络流的建图灵活,需要大量练习。 一些常见套路: 拆点:一般来说可以把一个点拆为一个入点和一个出点并连边,用于点边转化。 连 INF 边:这种边不可能包含在最小割中,可以用来将点定向。 建立超级源点和超级汇点:用于构建网络流模型。 加辅助点:比较灵活,可以用于处理多种问题。 做题记录: 1.P134
点分治小记
摘要:点分治是一类高效统计树上路径问题的算法,通过优化递归深度的方法来有效保证时间复杂度。 具体操作一般是以下几步: 找到当前子树的重心 以重心为根计算经过根节点的路径对答案的贡献 将根删去并递归处理它的所有子树 因为我们每次都以树的重心来作为根节点,递归深度不会超过 层。 每一层又
ARC147C Min Diff Sum
摘要:Sol: 很妙的一道题。 将限制转化为线段讨论。 首先考虑一个特殊情况:当所有线段都相交的时候,答案显然为 . 那么假如有两条线段没有相交呢? 我们可以将是否相交的判定转化为 和 的大小关系。
P2839 [国家集训队] middle
摘要:Sol: 首先注意到答案是具有单调性的,考虑二分答案 解决。 令 是 中 大于等于/小于 的数。 那么对于一个区间 ,显然中位数 的条件为 \(up(l, r, x