随笔分类 - 树
摘要:题意:给出若干个矩形,给每个确定方向,使得宽不相同,高的和最大。 暴力:二分图匹配,。 正解:把矩形看成边,那么定向后是基环内/外向树。 连通块是基环树只有一种方案。 连通块是树采用树规。 注意自环重边。 。
阅读全文
摘要:题意: 给定,,求x子树里深度不超过dep[x]+d的所有点中有多少种颜色。 强制在线。 一般的,询问区间颜色数时,可以求出每个数的后继,然后就变成了区间内大于某数的数,进而使用树状数组或主席树。 然而,询问树上的颜色数,还有一种更好的方法: 考虑某种颜色的贡献: 把这种颜色的所有点
阅读全文
摘要:涉及到RMQ,RMQ之和,最大子矩形等,子矩形数量等问题,可以考虑笛卡尔树。 笛卡尔树就是每次找到区间中的最值,按照这个位置将区间分为2份递归建树。 这样,最值就是lca了。 RMQ之和就是lca之和,可以枚举lca算贡献。 最大子矩形等就是每个点的权值乘以它对应的区间长度的最大值。 子矩形数量就是
阅读全文
摘要:有时,我们会遇到这样的问题: 在一个树上选定一些点,每个点能覆盖一定范围的点……之类 比如: CF70E Information Reform P4845 LJJ爱数树 P3267 [JLOI2016/SHOI2016]侦察守卫 Rbtree 通常,我们有两种做法: 方法一 我们对于每个点,考虑距离
阅读全文
摘要:题意: 给定一个点数为 n,边数为 m,权值不超过 的带权连通图,没有自环与重边。 现在要求对于每一条边求出,这条边的边权最大为多少时,它还能出现在所有可能的最小生成树上,如果对于任意边权都出现,则输出 。 这里写一个用倍增的做法。 先求出一个最小生成树。
阅读全文
摘要:作用:通过kruskal,我们可以求出两点之间经过边权的最大值最小可以是多少(即瓶颈路)。 如果是点权,则将边权设为两点的最大值。 求出 最小 生成树后,这个值就是树上路径最值。 但是,有时这样还不够。 我们可以这样建树:连接x,y时,新建点u,权值为边权,并将x,y的所属根的父节点都设为u。 用并
阅读全文
摘要:题意: 有一棵棵提米树,满足这样的性质: 每个点上长了一定数量的Temmie 薄片,薄片数量记为这个点的权值,这些点被标记为 1 到 n 的整数,其 中 1 号点是树的根,没有孩子的点是树上的叶子。 定义是一对相邻的叶子,当且仅当没有其它的叶子节点在 DFS 序上在a,b 之间。 每对
阅读全文
摘要:概念 树形背包,就是说,在树上选一个包含根的连通块,或背包存在依赖关系(选父才能选子),或者需要知道每个点的子树中选了多少…… 通常,我们有两种方法: 一、基于dfs合并: 我们设表示在i的子节点中选j个的状态。 在转移时,先dfs子节点,然后依次把子节点合并,每次合并2个。 即枚
阅读全文
摘要:首先,观察题意,可以发现在最长链下再接一个点,结果一定更优。 也就是说,可以免费选一条最长链,之后正常选。 我们枚举选的最长链,然后算出剩下部分的最优解。 有4部分: 1、链上每个点都选一个。 2、链上剩下的部分。 3、链的左面。 4、链的右面。 1可以直接计算。 那么,我们需要先进行树形背包,然后
阅读全文
摘要:主席树。 推下式子,发现点的深度和好算,lca深度和不好算。 lca深度之和有个套路:先给a到根路径+1,再算b到根的和。 如果可以离线,即LNOI的LCA。本题强制在线,可持久化。 由于区间修改,使用标记永久化。 注意修改要复制全,关于和的修改有些细节: cpp int xiugai(int i,
阅读全文
摘要:"题目链接" 题意: 外星人的母舰可以看成是一棵 n 个节点、 n−1 条边的无向树,树上的节点用 1,2,⋯,n 编号。JYY 的特工已经装备了隐形模块,可以在外星人母舰中不受限制地活动,可以神不知鬼不觉地在节点上安装监听设备。 如果在节点 u 上安装监听设备,则 JYY 能够监听与 u 直接相邻
阅读全文
摘要:题意:给你一棵树,要选择若干节点,若一个点i没有选择,则有的代价,其中j被选择。选择一个点代价为k,求最小代价。 首先,考虑这样一个问题: 如果距离a的最近被选点为i,距离b的最近被选点也是i,那么a到b的路径上的点的最近被选点都是i。 考虑一条链:设Ax是链上第x个点,那
阅读全文
摘要:先说一下dsu算法。 例题:子树众数问题。 给出一棵树,每个点有点权,求每个子树中出现次数最多的数的出现次数。 树的节点数为n, 这个数据范围,直接莫队会超时。 考虑一种暴力做法: 开一个全局数组,记录每中数的出现次数。 依次对每个点,用df
阅读全文
摘要:【题目背景】 Po 姐姐很爱他的妹子,可是 Po 姐姐并没有妹子。于是 Po 姐姐决定去找妹子。 【题目描述】 A 国有 n 个城镇,由 n 1 条道路连接,构成了一个树形结构。每条道路的长度都是一样 的。 Po 姐姐最近得到了一个信息:在 A 国的某些城镇,可能出现质量上乘的妹子。 为了捕获这些妹
阅读全文
摘要:"题目链接" 首先,把每条路径拆成如下两条路径。 1. 从起点到LCA的路径。 2. 从LCA到终点的路径。 对这两条路径分别处理。 首先,处理从起点到LCA的路径。 为了方便,我们把这条路径拆成两条,进行差分: 用从起点到根的路径,减去从LCA到根的路径,得出这条路径的贡献。 现在我们要处理如下路
阅读全文
摘要:[toc] 点分治 点分治就是基于点的分治。 方法如下:dfs遍历整棵树,在遍历到点u时,考虑LCA为u的点对组成的路径,方法如下: 依次考虑u的所有子节点v,对这些v的子树进行遍历,并考虑每个点与之前遍历的点组成的路径。 这种方法的时间复杂度为。 但这样对一些极限数据会超时(
阅读全文