【WikiOI】【P1036】【商务旅行】【题解】【LCA】
来源:互联网 发布:imax影片数据 编辑:程序博客网 时间:2024/06/06 20:31
传送门:www.wikioi.com/problem/1036/
滚回新校1week回来做点康复训练,话说进队爷们都在隔壁虐题,我等蒟蒻被题虐……
又是LCA,我TM就是链剖!!
Code:
//ID:zky#include<vector>#include<cstdio>#include<iostream>#include<algorithm>using namespace std;const int maxn=30010;typedef pair<int,int> pii;int w[maxn],fa[maxn],son[maxn],top[maxn],dep[maxn],siz[maxn],z;vector<int>G[maxn];void add(int u,int v){G[u].push_back(v);G[v].push_back(u);}void dfs(int u){son[u]=0;siz[u]=1;for(int i=0;i<G[u].size();i++){int v=G[u][i];if(v!=fa[u]){fa[v]=u;dep[v]=dep[u]+1;dfs(v);siz[u]+=siz[v];if(siz[son[u]]<siz[v])son[u]=v;}}}void build(int u,int tp){w[u]=++z;top[u]=tp;if(son[u])build(son[u],tp);for(int i=0;i<G[u].size();i++){int v=G[u][i];if(v!=fa[u]&&v!=son[u])build(v,v);}}int abs(int x){return x>0?x:-x;}int len(int u,int v){int ans=0;while(top[u]!=top[v]){if(dep[top[u]]>dep[top[v]]){int a=dep[u],b=dep[top[u]];ans+=abs(a-b)+1;u=fa[top[u]];}else{int a=dep[v],b=dep[top[v]];ans+=abs(a-b)+1;v=fa[top[v]];}}ans+=abs(dep[u]-dep[v]);return ans;}int q[maxn];int n,m;int main(){scanf("%d",&n);for(int i=1;i<n;i++){int u,v;scanf("%d%d",&u,&v);add(u,v);}dfs(1);build(1,1);scanf("%d",&m);scanf("%d",&q[1]);long long ans=0;for(int i=2;i<=m;i++){scanf("%d",&q[i]);ans+=len(q[i-1],q[i]);}cout<<ans<<endl;return 0;}
0 0
- 【WikiOI】【P1036】【商务旅行】【题解】【LCA】
- Codevs P1036 商务旅行
- 【基础练习】【倍增LCA】codevs1036 商务旅行题解
- wikioi 1036 商务旅行
- 【wikioi】1036商务旅行
- Codevs_P1036 商务旅行(LCA)
- 【codevs1036】商务旅行,LCA练习
- Codevs1036 商务旅行 LCA【pascal】
- SSL1746 商务旅行(lca)
- codevs 1036 商务旅行 (lca)
- 1036 商务旅行(lca)
- 1036 商务旅行(LCA例题)
- codevs 1036 商务旅行 (LCA)
- codevs 1036 商务旅行 题解报告
- CODE[VS] 1036 商务旅行(LCA + BFS)
- 【LCA 倍增法】【codevs 1036 商务旅行】
- 倍增LCA code[vs]1036商务旅行
- CodeVs.1036 商务旅行 ( LCA 最近公共祖先 )
- Ubuntu 14.04 配置 LAMP+phpMyAdmin PHP(5.5.9)开发环境
- 算法归纳
- OCP 1Z0 051 139
- json数据反序列化C#实体
- 深入理解Objective-c中@class的含义
- 【WikiOI】【P1036】【商务旅行】【题解】【LCA】
- 如何解决 SQL Server 中的无法连接问题
- 《开讲啦》摘录
- 排序算法之分配排序(线性时间排序)
- Hadoop datanode无法启动解决方案
- 持之以恒改善质量
- 黑马程序员---银行业务调度系统
- C#语言基础
- 使用Qt实现简单的图片预览效果