02 2022 档案
摘要:前言 联考中考了换根dp,发现自己之前理解的换根好拉,特此记录一下高级的换根dp做法。 正文 比如有dp: 设 为包含以 为根的子树的dp值, 表示 的子节点集合。 转移: 先将 按dp值按从小到大排序,即 \(son_{
阅读全文
摘要:点/边分治 关于点分治和边分治,个人感觉就是将序列上的分治问题转化为了树上的分治问题,为了每次让划分的子问题更平均,所以才有了点分治的找重心、边分治的边三度化。剩下的部分基本都可以看出序列分治的影子。 点分治 想想序列的分治是怎么样的?找中点,处理跨过中点的贡献,之后在递归处理两边的子问题,
阅读全文
摘要:什么是多维关系 多维关系基本上指偏序关系,即一个元素包含多个属性,每次需要快速查找满足某一关系的所有元素,再进行整体处理(权值和,第大...),如最基本的逆序对,每一个元素包含了位置和权值,对于每一个,需要查询的是满足$pos_j<pos_i\l
阅读全文
摘要:前言 暑假里通过托老师的分享,系统的学习了树上的一些操作,发现其中有很多有用的trick,所以总结一下。 托神无敌! 一 问题形式:批量处理f(dep(lca(x,y)))的问题,f(x)是一个关于x的函数 过程:先树剖,然后将x到根的路径先处理出贡献,(对于不同深度带来不同值,可以在数据结
阅读全文
摘要:题面 link 一个无向图无重边,路 的颜色为 , 可能有路颜色相同。 有一款机器人,当机器人在点 时,告诉这个机器人一种颜色,机器人在与相连的路中找到这种颜色的路,经过这条路到达相邻的路口。如果有多于一条满足情况,机器人
阅读全文
摘要:题面 link 题面直接看吧,这里补充一点,就是只有在序列中只含才会被考虑,也就是那些长度无限长的病毒根本没有意义。 题解 题目问最小不能被检测的病毒长度,而可以被检测最小不能被检测的病毒长度为无限长。 发现有多串的匹配问题(不能以作为子串)
阅读全文
摘要:题面 link 给定,之后有Q次操作,每次操作往集合S中加入一种元素,或删除一种元素。每次操作之后需要从S中选出,且最小,且存在一个实数数组使 \[ \sum_{i=1}^{|T|} S_i
阅读全文
摘要:前言 这是一篇用来记录近几年省选数据结构的文章,大致记录一些题目的关键点,其中好的/有代表性的会加入分享课件(没办法,谁叫我突然心血来潮想讲数据结构呢?) 是靠luogu标签划分的,肯定会有遗漏,如果你想推荐一些没有列举出来的题,欢迎推荐给我! 目前进度。 一、P4344 [SHOI2
阅读全文
摘要:题面 link 个人排成一个环,第i个人有个球,每个人可以拿出x个()给后面一个人,这个过程只进行一次。设传完后每个人手里有个球,求所有情况(值所成的序列不同)下的总和。 题解 感
阅读全文
摘要:题面 link 给定一个长度为 的序列,对于每一个可以选择向一个方向走长度为 ,问是否能走到。 题解 两个trick合并的一道题。 trick1:将坐标系旋转(高级的名字好像叫:曼哈顿距离与切比雪夫距离),然后$
阅读全文
摘要:题面 link 给一个的01矩阵,若表示有一个村庄,你需要修建一条护城河,要求: 没有自我交集 所有村庄都包含在多边形的内部。 每个顶点的x坐标和y坐标都是介于0和4(包括)之间的整数。 每条边都平行于x轴或y轴。 每
阅读全文
摘要:排列组合 排列组合的题目,一般看起来都很复杂,但都可以拆分成一个个最基本的小问题,再通过加法原理&乘法原理合并。 当然,如果有时候正向拆分很困难,可以试试反向拆,即所有情况-不满足的情况(这种容斥思想会在下面详细说明) 分析小问题时弄清楚条件:是不是小球放进盒子的类型?有没有编号?可不可以有空盒?.
阅读全文
摘要:题面 link 有个字符串,从中选出个以任意顺序拼起来,求所有情况中字典序最小的。 题解 首先考虑如果已经选出了个字符串,我们应该按什么顺序拼起来。 算是一个trick,重载小于号为。(如果交换两个相邻的可以更优的话肯定交换)
阅读全文
摘要:2-sat 2-sat是用来解决如下问题形式的算法: 有 个布尔变量 ,另有 个需要满足的条件,每个条件的形式都是" 为 true / false 或 为 true / false"。 算法的原理是将为真和为假拆
阅读全文
摘要:题面 link 有一个序列,定义其权值为相邻元素的差值的绝对值之和。现在可以整体翻转一个子区间,最小化权值。 题解 首先可以发现,对一段区间$[l,r]|A_l-A_{l-1}|+|A_{r+1}-A_r||A_{r}-A_{l-1}|+|A_{r+1
阅读全文
摘要:题面 link 给一个长度为的序列,定义一个长度为的合法括号序列的得分为:对于每对配对的括号的和。 输出得分最高的任意一个合法括号序列。 题解 主要是对的分析,设是讲序列按排序之后所在的位置,
阅读全文
摘要:题面 link 有一个机器人一开始在,之后会按一条包含L、R、U、D组成的字符串上下左右地走路,机器人将执行的这条字符串K()次。求结束时走过的不同的方块数。 题解 先考虑第一次机器人经过的点的集合$V={(X_i,Y_i)}\(,以及第一次
阅读全文
摘要:AC自动机 AC自动机适用于多个字符串的匹配,以及一系列引申出来的问题 Trie图 通过将Trie树转化为Trie图,并且使这些非树边到达的地方是“所有模式串的前缀中匹配当前状态的最长后缀。” 上图!(灰色的边:字典树的边,黑色的边:AC 自动机修改字典树结构连出的边。) 例如,当前的状态是$h
阅读全文
摘要:ps:感觉容斥对初学者而言很玄学(至少本人刚开始接触时是这样...),所以想写一篇题解,仔细分析容斥到底如何运用到题目中。 容斥 容斥解决的是满足多个条件的方案数的问题,这里可以把每个条件转化为集合(如果对集合的运算还不是很了解的同学,可以先了解集合的基本运算,这会对容斥的理解帮助很大),例: *\
阅读全文
摘要:后缀数组 一般可用于某一个字符串的子串有关字典序的问题。 算法流程 先对该字符串的所有后缀进行排序 定义: 表示将所有后缀排序后第 小的后缀的编号。 表示后缀 的排名 采用倍增+基数排序(),(如果偷懒/怕错也可以用
阅读全文
摘要:后缀自动机 后缀自动机只能对一个字符串建立(多个字符串需要广义后缀自动机),处理关于子串、字典序、出现次数等一系列问题的自动机。 后缀自动机的本质是对具有相同信息的子串(这里我们把这些子串看作一种状态)进行压缩(注意:这里后缀自动机对所有子串都进行了维护)。并且这个自动机具有图的结构,用来支持状态之
阅读全文
摘要:线性基 线性基是什么?王总说:“OI 中所说的线性基,其实是位线性空间下的在线化矩阵求秩。” enmmm.......差不多是这个样子,但是想要通过这样来理解线性基还要学好多好多前置知识,先说一下个人的理解吧。 首先,你要知道线性基在干什么:线性基在线的维护一个小集合 ,在集合内
阅读全文