
树 - LCA
NotFound1
这个作者很懒,什么都没留下…
展开
-
|hdu 2586|LCA|How far away ?
Hdu传送门LCA模板题/* Hdu 2586 LCA*/#include<cstdio>#include<cstring>#include<algorithm>#include<vector>using namespace std;#define ms(i,j) memset(i, j, sizeof i);const int MAXN = 40000 + 5,原创 2017-05-04 19:28:06 · 294 阅读 · 0 评论 -
|hdu 2874|LCA|并查集|Connections between cities
hdu传送门近似LCA模板题,只不过这里是森林,要用一个并查集判断是否在一棵树上/* Hdu 2586 LCA*/#include<cstdio>#include<cstring>#include<algorithm>#include<vector>using namespace std;#define ms(i,j) memset(i, j, sizeof i);原创 2017-05-04 20:49:44 · 519 阅读 · 0 评论 -
|poj 1986|LCA|Distance Queries
poj1986LCA模板题#include<cstdio>#include<cstring>#include<algorithm>#include<vector>#define ms(i, j) memset(i, j, sizeof i)using namespace std;const int MAXN = 40000 + 5, logs = 22;struct edge{原创 2017-05-06 21:51:22 · 304 阅读 · 0 评论 -
|hdu 3078|LCA|Network
hdu 3078LCA,先深度深的提上来和浅的同一深度,然后继续一起提,直到相等,期间把这些路径上的点都记录下来,排序后选择即可#include<cstdio>#include<cstring>#include<algorithm>#include<vector>#define ms(i, j) memset(i, j, sizeof i)using namespace std;const原创 2017-05-06 23:22:40 · 479 阅读 · 0 评论 -
|poj 3728|LCA|The merchant
poj 3728维护6个数组 pre[i][j] i的第2^j个祖先 deep[i] i的深度 up[i][j] i到i的第2^j个祖先的最优解 down[i][j] i的第2^j个祖先到i的最优解 dmax[i][j] i到i的第2^j个祖先路径上的最大值 dmin[i][j] i到i的第2^j个祖先路径上的最小值 然后可以通过倍增维原创 2017-05-08 19:49:16 · 499 阅读 · 0 评论 -
|poj 2763|LCA, 树状数组|或者|树链剖分, 线段树|Housewife Wind
poj 2763LCA+树状数组/线段树。首先本题大致一看就是一个LCA,但是本题有操作更改某边的权,这样会使得原本的far数组变化,不难发现,更改边权后影响该边下面所有点的答案。此时可以在LCA的DFS预处理时求出DFS序列(即时间戳),找到每个点管辖的范围,修改边权相当于修改该边连接的两个点深度深的那个点所管辖的范围,此时修改可以用暴力,但是由于far数组与LCA本身查询无关,我们可以用数据结构原创 2017-05-09 20:12:07 · 699 阅读 · 0 评论 -
|算法讨论|LCA 学习笔记
题目 [LCA]Hdu 2586:LCA模板题模板及讲解/* Hdu 2586 LCA*/#include<cstdio>#include<cstring>#include<algorithm>#include<vector>using namespace std;#define ms(i,j) memset(i, j, sizeof i);const int M原创 2017-05-04 19:33:25 · 432 阅读 · 0 评论