给定一个无向无环图,保证连通,求每加入一条给定的边图中还剩下多少桥。
双联通缩点重新建图后,再用lca在线算法解。
lca算法参考斌神http://www.cnblogs.com/kuangbin/p/3184884.html
这个版本的lca思路大致是先topsort,再用并查集分别从查询的两点向根节点回溯,直到两个点碰撞。效率我分析不出来,但看得出效率很高,每次查询都对后面查询做...
分类:
Web程序 时间:
2014-12-28 11:43:34
阅读次数:
192
最近公共祖先(LCA)by mpsDefine:求树上两个点的祖先中里两个点最近的一个点,该点称为这两个点的最近公共祖先(英译LCA)。 那么,如何求LCA呢? 经过思考,不难发现,有一种暴力方法,我们对于这两个点不断BFS,直到出现一个相同的点,该点即为LCA,空间如果跟不上的话可以改为迭代加深搜...
分类:
其他好文 时间:
2014-12-25 00:04:40
阅读次数:
238
Given a binary tree, find the lowest common ancestor of two given nodes in the tree.Node* LCA(Node* root, Node* p, Node* q){ if (root == NULL || p ...
分类:
其他好文 时间:
2014-12-17 01:35:37
阅读次数:
124
Given a binary search tree(BST), find the lowest common ancestor of two given nodes in the BST.Node* LCA(Node* root, Node* p, Node* q){ if (!root |...
分类:
其他好文 时间:
2014-12-17 00:13:50
阅读次数:
172
http://www.acmerblog.com/distance-between-given-keys-5995.htmllca在后序遍历中找,tralian算法还不会,懂了再补充有了lca就好求路径了,做差而已了。//=======================================...
分类:
其他好文 时间:
2014-12-15 06:29:56
阅读次数:
239
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2586思路:在求解最近公共祖先的问题上,用到的是Tarjan的思想,从根结点开始形成一棵深搜树,非常好的处理技巧就是在回溯到结点u的时候,u的子树已经遍历, 这时候才把u结点放入合并集合中,这样u结点和所...
分类:
其他好文 时间:
2014-12-15 01:24:41
阅读次数:
266
求路径中权重最小的点
#include
#include
#include
#include
#include
using namespace std;
typedef long long ll;
#define N 80010
int vis[N],mark[N],first[N],ver[N*2];
int val[N];
int dis[N];
int deep[N*2];
i...
分类:
其他好文 时间:
2014-12-14 09:29:40
阅读次数:
156
做法。。。就不讲了,参见hzwer的blog好了我们发现只要维护树上点到根的xor值就可以了,于是先搞个dfs序,然后用树状数组维护即可。反正各种调不出。。。各种WA后来发现又是LCA的姿势不对= =,今天不是刚写过noip题嘛T T蒟蒻还是滚去挖矿算了、、、 1 /***************....
分类:
其他好文 时间:
2014-12-14 00:31:57
阅读次数:
311
题目大意:唔 就是给你一棵树 和两个点,问你这两个点的LCA是什么思路:LCA的模板题,要注意的是在并查集合并的时候并不是随意的,而是把叶子节点合到父节点上#include#include#include#include#include#define maxn 10002#define MOD 10...
分类:
其他好文 时间:
2014-12-10 12:23:13
阅读次数:
175