LCA
河渔船
成长的小垃圾
展开
-
P3379 LCA(模板)
luogu#include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #include<string> #include<cmath> #include<vector> #define NN 500000 using namespace std; int n,m,s; //vector <int> a[NN+2]原创 2017-03-08 15:43:31 · 226 阅读 · 0 评论 -
NOIP 2013 货车运输(最大生成树+倍增LCA/Tarjan)
评测传送最大生成树+LCA(倍增或Tarjan)我的Tarjan TLE了 倍增可以过,而且很快。倍增#include<iostream> #include<cstdio> #include<algorithm> #include<vector> #include<queue> #include<cstring> const int N=10009; const int M=50009; cons原创 2017-10-18 14:31:17 · 383 阅读 · 0 评论 -
NOIP 2015 运输计划
评测传送二分答案+LCA+树上差分最好用Tarjan求LCA,有的oj会卡倍增。做法: 我们用LCA求出需要查询的每个计划的路径长度。 然后二分答案,check( )的时候,我们把大于mid的路径(因为这一些都是要去边的)求一下交点(边), 如果并非全都都交于一条边或者去掉交边后也不能让这些路径都小于等于mid,那么mid就是不可以的。 求交边时,用到树上差分。#include<iostre原创 2017-10-23 17:14:01 · 221 阅读 · 0 评论 -
LCA (Tarjan)
感谢两位大佬的博客,讲得很明白。 %dalao %dalao 模板 评测传送#include<iostream> #include<cstdio> #include<cstring> #include<cmath> #define LL long long #define M 750009 using namespace std; int head[M],to[2*M],nxt[2*M]原创 2017-10-16 17:34:39 · 193 阅读 · 0 评论 -
Codevs 2370 小机房的树
传送 LCA的应用。 用Tarjan的方法来找最近公共祖先,dfs过程中求出当前节点到根节点的距离。 那么ans=dep[u]-dep[lca]+dep[v]-dep[lca];#include<iostream> #include<cstdio> #include<cstring> #include<cmath> #define LL long long #define M 750009原创 2017-10-16 17:37:49 · 280 阅读 · 0 评论