LCA
ZigZagK
一个蒟蒻。
展开
-
NOIP2016提高组Day1题解
NOIP2016提高组Day1题解。原创 2017-05-20 22:29:20 · 1457 阅读 · 2 评论 -
LCA-ST算法&Tarjan_LCA
定义树中两个节点x,y的最近公共祖先(Lowest Common Ancestors,简称LCA)指的是既是x祖先,又是y祖先且距离x和y最近的节点。ST算法(在线)我们有一个求x和y的LCA的初始想法:就是先让x和y中dep较大的节点与dep较小的节点处在同一深度,然后同时向上走,直到相遇,此时相遇的节点即为LCA: 复杂度为O(n∗Q)O(n*Q),并不是很好,我们需要优化。 初始想法很原创 2017-07-23 12:57:54 · 874 阅读 · 1 评论 -
【LCA】HDU2586[How far away?]题解
题目概述给出一棵n个节点的树和m个询问,每个询问形如x,y表示求x,y的距离。解题报告题目很裸,这篇文章的意义就是水博客放一下LCA模板啦。示例程序ST算法。#include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int maxn=40000,Log=15;int te,n,Q,dep[max原创 2017-07-23 13:02:08 · 417 阅读 · 0 评论 -
【LCA】洛谷2420[让我们异或吧]题解
题目概述给出一棵 nn 个节点的树,每条边都有边权。再给出 mm 个询问,求 x→yx\to y 路径上边权的异或值。解题报告看洛谷讨论无意中看到这道题,一点进来发现竟然是道水题,于是水了博客QAQ。树上路径肯定是LCA,但是由于是异或,会发现并没有必要……只需要认为询问是 x→rootx\to root ,然后 root→yroot \to y 就可以了,因为重复的那一段异或两次就会变为 00 从原创 2017-10-01 22:57:46 · 429 阅读 · 1 评论 -
【LCA】2017.10.22杂题[宝藏探寻]题解
题目概述给出一棵 nn 个点的树,每个点有点权 aia_i ,一个连通块的价值为 (∑ai)2(\sum a_i)^2 。现在给出 mm 个询问,每个询问 (x,y)(x,y) 求删除 x→yx\to y 路径上的点以及相邻的边后的价值(询问相互独立)。解题报告naive想法:一步一步跳到LCA,同时统计。优化:用ST算法倍增来跳,快速统计。统计的时候记录一下子树和(包括根节点)以及子树平方和(不包原创 2017-10-22 15:30:36 · 363 阅读 · 0 评论 -
【二分+LCA+差分】BZOJ4326(NOIP2015)[运输计划]题解
题目概述给 nn 个点的树和 mm 个运输计划( x→yx\to y ),完成所有运输计划的时间是运输计划中的最大时间。现在可以把一条边的边权改为 00 ,求完成所有运输计划的最快时间。解题报告由于求最大值的最小值,所以想到二分枚举答案 midmid 。然后预先求出LCA算出每个运输计划的时间,我们就知道有多少个运输计划超出了 midmid 。对于每个超出 midmid 的运输计划,我们肯定需要把这原创 2017-10-16 13:11:30 · 469 阅读 · 0 评论