【模板】LCA
来源:互联网 发布:telnet连接linux 编辑:程序博客网 时间:2024/06/05 00:34
原题codevs2370
#include <iostream>#include <cstdio>#include <cmath>#include <cstring>#include <algorithm>using namespace std;const int MAXN = 150005;int n,m,f,t,v,tot = 0;int first[MAXN],next[MAXN];int deep[MAXN],fa[MAXN][35],rank[MAXN];struct edge{ int f,t,v;}l[MAXN];void build(int f,int t,int v){ l[++ tot] = (edge){f,t,v}; next[tot] = first[f]; first[f] = tot; return;}void make_tree(int x,int f,int v){ deep[x] = deep[f] + 1; fa[x][0] = f;rank[x] = v; for(int i = first[x]; i != -1; i = next[i]) if(l[i].t != f) make_tree(l[i].t,x,v + l[i].v); return;}void make_lca(){ for(int j = 1; j <= log2(n); j ++) for(int i = 1; i <= n; i ++) fa[i][j] = fa[fa[i][j - 1]][j - 1]; return;}int lca(int x,int y){ if(deep[x] < deep[y]) swap(x,y); for(int i = log2(n); i >= 0; i --) if(deep[fa[x][i]] >= deep[y]) x = fa[x][i]; if(x == y) return x; for(int i = log2(n); i >= 0; i --) if(fa[x][i] != fa[y][i]) x = fa[x][i],y = fa[y][i]; return fa[x][0];}int main(){ memset(first,0xff,sizeof(first)); scanf("%d",&n); for(int i = 1; i < n; i ++) { scanf("%d %d %d",&f,&t,&v); build(f,t,v); build(t,f,v); } make_tree(0,n,0); make_lca(); scanf("%d",&m); for(int i = 1; i <= m; i ++) { scanf("%d %d",&f,&t); printf("%d\n",rank[f] + rank[t] - (rank[lca(f,t)] << 1)); } return 0;}
0 0
- LCA模板
- LCA模板
- LCA模板
- LCA 模板
- LCA模板
- LCA模板
- LCA模板
- 【模板】LCA
- LCA模板
- 模板--------LCA
- 【模板】LCA
- lca模板
- LCA 模板
- LCA模板
- LCA 模板
- LCA模板
- 【LCA模板】
- LCA模板
- [openjudge] 746:Elevator Stopping Plan
- React入门指引与实战----React是Facebook公司推出的前端组件化解决方案,目的在于解决前端开发中存在的各个痛点。目前,前端框架与库层出不穷,形成了异常繁荣的局面,那么Facebook为
- 从苏宁电器到卡巴斯基----从苏宁电器离职以后,我想要重新租个房子来备考,主要是希望能够有个良好的学习环境。思前想后,决定在长春理工大学周边租个房子住,然后每天去理工大学上自习。于是我在南湖小区找了个
- 【NOIP模拟题】【线段树】2016.11.10第三题题解
- 【树上差分】【小结】
- 【模板】LCA
- Perfect Squares
- 爱不释手是JAVA----javaSE(标准版) javaEE(企业版) javaME(微型版) JDK(java开发工具包)JRE(java运行环境)IDE(集成开发环境)2、Java规
- 创易是什么
- 南邮CTF练习题——web题
- kubernetes1.4 基础篇:Learn Kubernetes 1.4 by 6 steps(4):Step 3. Explore Your App
- 退休则不役于物,百战归来再读书——2016年终总结
- 如易云揭秘1-框架
- 【bzoj 1293】[SCOI2009]生日礼物(乱搞|单调队列)