随笔分类 - 

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

点击右上角即可分享
微信分享提示