LCA
文章平均质量分 77
sdj222555
这个作者很懒,什么都没留下…
展开
-
POJ 1470 LCA 公共祖先
裸题一个/*ID: CUGB-wwjPROG:LANG: C++*/#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #in原创 2012-04-21 10:57:09 · 929 阅读 · 0 评论 -
POJ 2874 LCA 树上任意两点距离
本题说了是无环图,所以就是一片森林了。 而对于树上的任意两点,我们可以用LCA求其距离。距离为两个子节点到根的距离和减去最近祖先到根的距离的2倍。具体画图便可看出来。 并且图是无向图,所以LCA时需要进行标记POJ 1986同这道题 基本一样/*ID: CUGB-wwjPROG:LANG: C++*/#include #include #include #incl原创 2012-04-21 09:51:37 · 5559 阅读 · 0 评论 -
POJ 1330 Nearest Common Ancestors Tarjan求LCA
这道题就是传说中的LCA了,从网上找了一个模板,用数组模拟的树大概的原理, 大概就是:首先,把每个节点的祖先标记为自己,如果在一个子树内没有解决查询的LCA问题,那么该子树的所有节点的都将直接或间接的指向该子树的直接父亲,也就是子树内的所有节点的祖先都是该子树的父亲,然后就可以在该父亲的其他儿子中寻找。#include #include #include #include #i原创 2012-01-13 21:09:10 · 769 阅读 · 1 评论 -
POJ 1986 Distance Queries LCA和RMQ
这题以前用tanjan做过现在再做一遍 用RMQ的方法。 大意就是求一棵树上任意两点的距离先DFS跑出欧拉序列然后根据pos直接RMQ就行了#include #include #include #include #include #include #include #include #include #define eps 1e-5#define MAXN原创 2012-08-17 14:10:25 · 944 阅读 · 0 评论 -
POJ 3694 Network 割边+LCA
这道题跟3177意思差不多,不过最后问的不一样,说是加入某条边后,问图内剩余的桥有多少。这题的大概思路就是,先求割边并标记,然后缩点,形成一棵树,然后把这颗树上各个结点的父结点用dfs求出来,再然后就是LCA了,因为加入某条边后,树内会形成一个圈,这个圈上所有的边将不再是桥,可以发现跟LCA的关联。求LCA用裸的方法就行,比较直观些,也好操作。实际上,这道题也不一定要缩点,原创 2012-01-20 01:31:30 · 4695 阅读 · 6 评论 -
POJ 3728 离线 LCA
题意很简单给一个树(n 若干个询问(5w)对每个询问,问的是从u点走到v点(简单路径),商人在这个路径中的某点买入商品,然后在某点再卖出商品, 最大可能是多少注意一条路径上只能买卖一次,先买才能卖用的方法是离线LCA,在上面加了一些东西对于一个询问, 假设u,v的LCA是f那么有三种可能, 一个是从u到f 买卖了。 一个是从f到v买卖了, 一个是从原创 2015-01-22 01:38:17 · 2130 阅读 · 1 评论