
lca
zzuli-dk
这个作者很懒,什么都没留下…
展开
-
hdu 2586 How far away ? LCA 模板题
第一次做LCA的题目。 题意就是在一棵树中, 询问每两点的距离。 开始一看觉得用带权并查集就可以了,但是只能求出相对距离,无法判断其具体位置,所以需要找到共同祖先,所以在tarjan函数中就有了两个循环, 一个是类似种类并查集,一个是离线询问,找到最近公共祖先。 可以根据我代码下方的数据调试了一下, 很快就懂了。#include <bits/stdc++.h> using namespace原创 2017-08-23 17:35:26 · 378 阅读 · 0 评论 -
lca 在线模板讲解
参考 http://blog.youkuaiyun.com/y990041769/article/details/40887469 首先搞清楚离线和在线做法的区别。 在线的做法是处理每一次询问,得出答案。 在线用到了st+dfs 这个模板是从大佬那里copy过来的,加上自己的理解,姑且算是原创吧。#include <iostream> #include <cstdio> #include <cstrin原创 2017-10-18 15:52:20 · 287 阅读 · 0 评论 -
Wannafly挑战赛1 C-MMSET2 LCA
传送门 解法虚树或者LCA 思路:对于每次找点集中的每个点与其他点最大距离的最小值。最后答案是((点集的直径+1)/2)#include <iostream> #include <cstdio> #include <cstring> #include <cmath> using namespace std; //#pragma comment(linker, "/STACK:102400000,原创 2017-10-18 16:34:25 · 330 阅读 · 0 评论