LCA
A_loud_name
23333333~~~
展开
-
vijos_1460_拉力赛_LCA tarjan离线算法
题目大意 车展结束后,游乐园决定举办一次盛大的山道拉力赛,平平和韵韵自然也要来参加大赛。 赛场上共有n个连通的计时点,n-1条赛道(构成了一棵树)。每个计时点的高度都不相同(父结点的高度必然大于子结点),相邻计时点间由赛道相连。由于马力不够,所以韵韵的遥控车只能从高处驶向低处。而且韵韵的车跑完每条赛道都需花费一定的时间。 举办方共拟举办m个赛段的比赛,每次从第u个计时点到第v个计时点,当然原创 2016-07-08 17:16:03 · 530 阅读 · 3 评论 -
祖孙询问 纪中3054 LCA
Description已知一棵n个节点的有根树。有m个询问。每个询问给出了一对节点的编号x和y,询问x与y的祖孙关系。Input输入第一行包括一个整数n表示节点个数。接下来n行每行一对整数对a和b表示a和b之间有连边。如果b是-1,那么a就是树的根。第n+2行是一个整数m表示询问个数。接下来m行,每行两个正整数x和y。Output对于每一个询问,输出1:如果x是y的祖先,输出2:如果y是x的祖先,否原创 2016-09-03 13:24:55 · 488 阅读 · 0 评论 -
poj 1330 Nearest Common Ancestors
题目大意 自己读~~真~题目大意 分析 就是裸的LCA tarjan离线算法,套模板。 代码 type arr=record x,y,w:longint; next:longint; end; var a,g:array[1..10010] of arr; fa,v,v1:array[1..10010] of longint; d原创 2016-07-08 17:20:50 · 355 阅读 · 2 评论 -
Nearest Common Ancestors poj 1330 LCA转RMQ
题目大意随便读题分析对有根树T进行DFS,将遍历到的结点按照顺序记下,我们将得到一个长度为2N – 1的序列,称之为T的欧拉序列F每个结点都在欧拉序列中出现,我们记录结点u在欧拉序列中第一次出现的位置为pos(u)根据DFS的性质,对于两结点u、v,从pos(u)遍历到pos(v)的过程中经过LCA(u, v)有且仅有一次,且深度是深度序列B[pos(u)…pos(v)]中最小的即LCA(T, u,原创 2016-09-22 17:40:37 · 425 阅读 · 0 评论 -
商务旅行 code[vs] 1036
Description某首都城市的商人要经常到各城镇去做生意,他们按自己的路线去做,目的是为了更好的节约时间。假设有N个城镇,首都编号为1,商人从首都出发,其他各城镇之间都有道路连接,任意两个城镇之间如果有直连道路,在他们之间行驶需要花费单位时间。该国公路网络发达,从首都出发能到达任意一个城镇,并且公路网络不会存在环。你的任务是帮助该商人计算一下他的最短旅行时间。Input Description输原创 2016-09-23 19:03:56 · 483 阅读 · 0 评论 -
最近公共祖先(LCA) 洛谷 3379 LCA
题目描述如题,给定一棵有根多叉树,请求出指定两个点直接最近的公共祖先。分析直接上tarjan 水了一道模板(c++的)。 顺便复习一下。code#include<iostream> #include<cstring> #include<cstdio> #include<cmath> #include<algorithm>using namespace std;struct arr{ in原创 2017-01-05 17:58:30 · 502 阅读 · 0 评论 -
【NOIP2015模拟11.4】电话线铺设 jzoj 4313 最小生成树+树链剖分
题目 分析 要把n个点用n-1条边连接起来,还要使总边权和最小,那么很明显是求最小生成树,用克鲁斯卡尔算法可解。 但是这题有一个限制条件: 一定要用n-2条王牌电缆+1条李牌电缆组成最小生成树。 那我们就先用n-1条王牌电缆建立最小生成树。 然后枚举所有李牌的边,如果一条李牌边是从x到y费用z,因为要使结果是一颗树,所以要把新生成的环上边权最大的边删去(即在x到y的路径上删去一原创 2018-01-30 16:49:21 · 426 阅读 · 1 评论