[hdu2586]How far away?(LCA)】的更多相关文章

题意:问树上两点之间的最短距离 解题关键:LCA模板题,在线做法,LCA->RMQ,用st表求解 这里是用first,rmq数组长度可以减半. #include<cstdio> #include<cstring> #include<algorithm> #include<cstdlib> #include<cmath> #include<iostream> typedef long long ll; using namespac…
hdu2586 How far away ? Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 4183    Accepted Submission(s): 1598 Problem Description There are n houses in the village and some bidirectional roads co…
整整花了一天学习了LCA,tarjan的离线算法,就切了2个题. 第一题,给一棵树,一次查询,求LCA.2DFS+并查集,利用深度优先的特点,回溯的时候U和U的子孙的LCA是U,U和U的兄弟结点的子孙们的LCA是U的父亲,结合每次询问,    3.   hdu2586,求无相无环有权图,求俩点距离(n<=40000,最短路必然TLE),转化树(任意取一点为根),双向边保存,链式前向星保存边和权,DfS, 先记录下每次询问,用链式前向星保存,双向保存,第(i+1)/2条边即为第i次询问(一次询问记…
LCA问题有好几种做法,用到(tarjan)图拉算法的就有3种.具体可以看邝斌的博客.http://www.cnblogs.com/kuangbin/category/415390.html 几天的学习,我就弄懂了离线的Tarjan算法.在此,先鄙视一下哈工大出版的<图论及应用>,离线的Tarjan算法的模版用不了.害我白忙活. poj1330的代码可以直接用来当模版. #include<iostream> #include<cstdio> #include<cs…
How far away ? Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 11739    Accepted Submission(s): 4325 Problem Description There are n houses in the village and some bidirectional roads connectin…
题目链接:传送门 题意: 给定一棵树,求两个点之间的距离. 分析: LCA 的模板题目 ans = dis[u]+dis[v] - 2*dis[lca(u,v)]; 在线算法:详细解说 传送门 代码例如以下: #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; const int maxn = 40010; str…
倍增法加了边的权值,bfs的时候顺便把每个点深度求出来即可 #include<iostream> #include<cstring> #include<cstdio> #include<queue> using namespace std; #define maxn 40005 #define DEG 20 struct Edge{ int to,next,w; }edge[maxn*]; int head[maxn],tot; void addedge(i…
http://acm.hdu.edu.cn/showproblem.php?pid=2586 课上给的ppt里的模板是错的,wa了一下午orz.最近总是被坑啊... 题解:树上两点距离转化为到根的距离之和减去重复部分,相当于前缀和 dis[x] + dis[y] - 2ll * dis[LCA(x, y)] #define _CRT_SECURE_NO_WARNINGS #include<cmath> #include<iostream> #include<stdio.h&g…
How far away ? Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 3653    Accepted Submission(s): 1379 Problem Description There are n houses in the village and some bidirectional roads connecting…
求距离 #include<map> #include<set> #include<cmath> #include<queue> #include<stack> #include<vector> #include<cstdio> #include<cassert> #include<iomanip> #include<cstdlib> #include<cstring> #in…