随笔分类 -  数据结构--树链剖分

摘要:传送门(权限) 题目大意 给定一个有$n$个字符串的集合$S$,一个初始为空的字符串集合$T$,支持两种操作。 1、向$T$中加入一个新的字符串$K$ 2、给定$i$,询问$T$中有多少个字符串包含了$S_i$这个子串。 题解 先考虑暴力怎么做,先对$S$建立$AC$自动机,每插入一个字符串$K$, 阅读全文
posted @ 2018-10-24 14:37 OYJason 阅读(215) 评论(0) 推荐(0)
摘要:传送门 题目大意 给定一棵$N$个点的树$(N\leq 5\times 10^4)$,三个人轮流选点,每次等概率选一个之前没有被选过的点。 定义$M$个距离(简单路径上的边数)的点对$(M\leq 10)$是幸运的,求每个人分别获得的幸运点对数量的期望。 题解 首先不难发现每个人选的点是独立的且数量 阅读全文
posted @ 2018-10-09 15:09 OYJason 阅读(341) 评论(0) 推荐(0)
摘要:题意 在树上求一条路径,使得其最长上升子序列最长,输出上升子序列长度。 题解 考虑如何用$N\log N$的时间解决在序列上的问题,我们只需要维护每个长度的最长上升子序列的结尾的最小值即可。 将这个方法套在树上:考虑长链剖分,维护从某个叶子出发到根的每个长度的最长上升和下降的最优结尾。每次更新答案只 阅读全文
posted @ 2018-09-28 18:32 OYJason 阅读(239) 评论(0) 推荐(0)
摘要:题目大意: 求长度$\in [L,U]$的路径的最大边权和平均值。 题解 首先二分就不用说了,分数规划大家都懂。 这题有非常显然的点分治做法,但还是借着这个题学一波长链剖分。 其长链剖分本身也没啥,就是重链剖分中判断中儿子的参数由比较子树大小改为了子树最深点的深度。 这样一来,有一个很显然的性质,所 阅读全文
posted @ 2018-09-20 19:59 OYJason 阅读(312) 评论(0) 推荐(0)
摘要:Description 小A走到一个山脚下,准备给自己造一个小屋。这时候,小A的朋友(op,又叫管理员)打开了创造模式,然后飞到山顶放了格水。于是小A面前出现了一个瀑布。作为平民的小A只好老实巴交地爬山堵水。那么问题来了:我们把这个瀑布看成是一个$n$个节点的树,每个节点有权值(爬上去的代价)。小A 阅读全文
posted @ 2018-09-13 16:59 OYJason 阅读(282) 评论(0) 推荐(0)
摘要:题目大意 给定一棵$N$个点的树$(N\leq 100000)$,每个节点有一个点权和一种位运算符号(&(与)、|(或)、^(异或)三种之一),支持两种操作: 1、给定一个点$u$,一个数值$m$,一个符号$k$(1表示&,2表示|,3表示^),将点$u$的点权修改为$m$,符号修改成$k$。 2、 阅读全文
posted @ 2018-08-01 16:56 OYJason 阅读(201) 评论(0) 推荐(0)
摘要:题目描述 Linux用户和OSX用户一定对软件包管理器不会陌生。通过软件包管理器,你可以通过一行命令安装某一个软件包,然后软件包管理器会帮助你从软件源下载软件包,同时自动解决所有的依赖(即下载安装这个软件包的安装所依赖的其它软件包),完成所有的配置。Debian/Ubuntu使用的apt-get,F 阅读全文
posted @ 2018-02-02 17:13 OYJason 阅读(343) 评论(0) 推荐(0)
摘要:树链剖分 将一棵树的每个节点到它所有子节点中子树和(所包含的点的个数)最大的那个子节点的这条边标记为“重边”。 将其他的边标记为“轻边”。 若果一个非根节点的子树的大小不小于任意一个他兄弟节点的子数大小(若有多个就看心情选取其中的一个),那么它到它父节点的连边为重边,这个节点为重子节点,否则,它到它 阅读全文
posted @ 2018-02-02 17:12 OYJason 阅读(258) 评论(0) 推荐(0)