LCA/树上差分
Anxdada
多读书多看报, 少吃零食多睡觉
展开
-
CF --- 832D Misha, Grisha and Underground 【LCA + 思维】
传送门 // 题意 : 求给定树上的三点的组成的任意两条路径的重合度最大. // 思路: 可以容易知道一个点到其他两个点时, 必定会经过哪两个点的LCA, 所以枚举出这三个点的三个LCA, 取深度最深的那个, 然后取三点中到那个深度最深的那个点的距离最大的值 . AC Code/** @Cain*/const int maxn=1e5+5;int up[maxn][25];int d原创 2017-07-30 14:29:48 · 476 阅读 · 0 评论 -
LCA --- 常规的三种算法
模板题,后面的三种方法都可以做,模板也是基于这道题的//前言: 在dfs过程中, 一定会遍历到每两个点的的LCA, 并且由于顺序问题, 一定不会遍历到他们的LCA的祖先, 所以就可以当遍历到第二个相关的点时就可以直接求出了他们LCA了.ST在线这篇博客讲的很好 1: LCA-RMQ 在线算法(即问一个答一个)借用上面那张图 看完这幅图, 我觉得你就应该懂了. 给出代码实现: (...原创 2017-07-29 01:09:05 · 577 阅读 · 0 评论 -
洛谷P4180 严格次小生成树 BZOJ1977 【Kruskal and LCA倍增】
传送门 // 问题很简单, 就是求次小生成树, 并且权值是严格小于, 不是之前的小于等于乐. 这道题写了我一下午….. 我好菜啊~ , 原先维护的树上任意两点之间的最大值, 然后依次去找这个环中的最大以及次大值, 老是要错…. 死活过不了第一个case, 想死的心都有了…… 然后就改成了同时维护树上的严格次小值. 直接算所有的最小增量, 才过的… 之前找bug找了我三个小时, 还是放弃了…...原创 2018-05-21 17:24:27 · 369 阅读 · 1 评论 -
关于树上差分的一些理解
借鉴博客一些题目: (由易到难) 洛谷P3258松鼠的新家 洛谷P2680运输计划 洛谷P1084疫情控制树上差分是一个很好的技巧. 主要分为下面两种:一.关于边的差分(如找被所有路径共同覆盖的边)首先我们除了一般的up,deep等数组以外,多开一个数组:sum。sum用来记录点的出现次数(具体点说实际上记录的是点到其父亲的边的出现次数, 我们这样处理:sum[u]+...原创 2018-07-15 10:14:26 · 1483 阅读 · 0 评论 -
HDU - 6110 路径交 【LCA + 线段树 + 思维】
传送门 悟: 树上路径相交问题一定和他们之间的LCA的最深的那一两个有关系!!!题目大意: 给定一棵n个点的树,以及m条路径,每次询问第L条到第R条路径的交集部分的长度(如果一条边同时出现在2条路径上,那么它属于路径的交集)思路: 首先我们考虑两条路径相交的情况, A - > B, C - > D, 很明显这两条相交路径为LCA(A, C), LCA(A, D), ...原创 2018-07-31 15:30:41 · 803 阅读 · 0 评论 -
POJ - 2763 Housewife Wind 【LCA + 树状数组 or 树链剖分】
传送门 题目大意: 知道了一颗有 n 个节点的树和树上每条边的权值,对应两种操作: 0 x 输出 当前节点到 x节点的最短距离,并移动到 x 节点位置 1 x val 把第 x 条边的权值改为 val思路: 树上两个节点a,b的距离可以转化为 dis[a] + dis[b] - 2*dis[lca(a,b)] 其中 dis[i] 表示 ...原创 2018-07-31 15:54:22 · 279 阅读 · 0 评论 -
POJ - 3417 Network 【树上差分 + LCA + 思维】 好题!
传送门 题意: 先给一棵具有n个节点的树, 然后再给出m条边, 问从树上删去一条边, 再从m条边中删去一条边, 把这个图分成至少两部分的方案数.思路 我们知道再树上每加一条边树上一定有环, 假设我们将在环上的树边的累加标记都加一, 表示被一条m中的边所覆盖, 然后我们在分析, 对于一颗树我们删去任意一条边, 树一定会被分成两部分, 那么如果被删去的边的累加标记>=...原创 2018-07-31 16:09:01 · 468 阅读 · 0 评论 -
2018徐州网络预选赛 J 题 Maze Designer 【思维 + 最大生成树 + LCA】
传送门 题意:给定一个n*m的矩阵, 除了边界, 其他相邻的边都有一个代价, 现在我们需要在这个矩形中选择一些边封起来, 代价就是开始输入的代价, 我们要让封起来的代价和尽量的小, 并且封起来后, 矩阵中任意两点之间的最短路径是唯一的, 现在不告诉你具体是怎样封的(但是这个矩形已经进行了封墙的操作), 然后q个询问, 每次询问两个点, 他们在这个已经处理过的矩形中的最短路径是多少.思路: 其...原创 2018-09-10 12:43:52 · 299 阅读 · 1 评论 -
洛谷 P3398 仓鼠找sugar 【思维 + LCA】
传送门题意: 就是给定一棵树, 然后有q次询问, 每次给出树上的两条路径, 问着两条路径是不是有没有公共点思路: 通过画一系列的图可知, 如果两条路径有公共点, 那么一定有一条路径的LCA是在另一条路径上的, 那么我们现在如何判断一个点x是不是再一条路径上了?如果点x在路径u->v上, 那么一定满足dep[x] >= dep[LCA(u, v)], 并且LCA(u, x) == x...原创 2018-10-05 21:15:38 · 264 阅读 · 0 评论