#include<iostream>

#include<vector>

using namespace std;

const int MAX=10001;

int pre[MAX],visit[MAX],indegree[MAX];

vector<int>qury[MAX],tree[MAX];

int ancestor[MAX];

void init(int n) {//初始化

 int i;

 for(i=1;i<=n;i++) {

  visit[i]=0;

  pre[i]=i;

  ancestor[i]=i;

  indegree[i]=0;

  qury[i].clear();

  tree[i].clear();

 }

}

int find(int x) {

 if(x!=pre[x])

  pre[x]=find(pre[x]);//路径压缩

 return pre[x];

}

void infind(int a,int b) {//合并

   int f1=find(a);

   int f2=find(b);

   if(f1==f2)

    return ;

    pre[f1]=f2;

   return ;

}

void lca(int u) {

 int i,len;

 len=tree[u].size();

 for(i=0;i<len;i++) {

  lca(tree[u][i]);

  infind(u,tree[u][i]);//将u和其子节点联系起来

  ancestor[find(u)]=u;//将所有u的子节点的点都指向u,即u为根

 }

 visit[u]=1;

 len=qury[u].size();

 for(i=0;i<len;i++)//

  if(visit[qury[u][i]]==1) {//如果找到直接输出

   printf("%d\n",ancestor[find(qury[u][i])]);

   return ;

  }

}

int main() {

 int n,t,a,b,i;

 scanf("%d",&t);

 while(t--) {

  scanf("%d",&n);

  init(n);

  for(i=1;i<n;i++) {

   scanf("%d%d",&a,&b);

   tree[a].push_back(b);

   indegree[b]++;

  }

  scanf("%d%d",&a,&b);

  qury[a].push_back(b);

  qury[b].push_back(a);

  for(i=1;i<=n;i++)

   if(indegree[i]==0) {

    lca(i);

    break;

   }

 }

 return 0;

}

poj 1330lca模板题离线算法的更多相关文章

  1. POJ 1273 - Drainage Ditches - [最大流模板题] - [EK算法模板][Dinic算法模板 - 邻接表型]

    题目链接:http://poj.org/problem?id=1273 Time Limit: 1000MS Memory Limit: 10000K Description Every time i ...

  2. hdu 2586 How far away?(LCA模板题+离线tarjan算法)

    How far away ? Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

  3. POJ 1502 MPI Maelstrom(模板题——Floyd算法)

    题目: BIT has recently taken delivery of their new supercomputer, a 32 processor Apollo Odyssey distri ...

  4. HDU 1874 畅通工程续(模板题——Floyd算法)

    题目: 某省自从实行了很多年的畅通工程计划后,终于修建了很多路.不过路多了也不好,每次要从一个城镇到另一个城镇时,都有许多种道路方案可以选择,而某些方案要比另一些方案行走的距离要短很多.这让行人很困扰 ...

  5. SPOJ RPLN (模板题)(ST算法)【RMQ】

    <题目链接> 题目大意:给你一段序列,进行q次区间查询,每次都输出询问区间内的最小值. 解题分析: RMQ模板题,下面用在线算法——ST算法求解.不懂ST算法的可以看这篇博客  >& ...

  6. [poj2449]Remmarguts' Date(K短路模板题,A*算法)

    解题关键:k短路模板题,A*算法解决. #include<cstdio> #include<cstring> #include<algorithm> #includ ...

  7. HDU 2544 最短路(模板题——Floyd算法)

    题目: 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt.但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要寻找最短的从商店到赛场的路线,你 ...

  8. POJ 1986 - Distance Queries - [LCA模板题][Tarjan-LCA算法]

    题目链接:http://poj.org/problem?id=1986 Description Farmer John's cows refused to run in his marathon si ...

  9. A Plug for UNIX POJ - 1087(模板题 没啥好说的。。就用了一个map)

    题意: 几种插头,每一种都只有一个,但有无限个插头转换器,转换器(a,b) 意味着 可以把b转换为a,有几个设备,每个设备对应一种插头,求所不能匹配插头的设备数量 这个题可以用二分图做 , 我用的是最 ...

随机推荐

  1. android将对象序列化到文件:直接写文件与用Serializable接口的对比

    1.用文件读写1024个对象的日志 10-09 16:12:44.493 6385-6385/com.example.tt.downtest D/Serializable_TAG: write 102 ...

  2. 转 Oracle 12c: Managing Resources

    http://www.oracle-class.com/?p=3058 1. Introduction: Oracle database 12c comes with several Resource ...

  3. jmeter(一)工具介绍(二)

    1.Jmeter 概要描叙 jmeter 是一款专门用于功能测试和压力测试的轻量级测试开发平台.多数情况下是用作压力测试,该测试工具在阿里巴巴有着广泛的使用,估计是不要钱吧,哈哈,功能上来说,整个平台 ...

  4. sdut1283Five in a Row, Again

    一简单的状压题 比赛时跑偏了 ,脑子最近乱的跟浆糊似得呢.. #include <iostream> #include<cstdio> #include<cstring& ...

  5. Android开发中使用数据库时出现java.lang.IllegalStateException: Cannot perform this operation because the connection pool has been closed.

    最近在开发一个 App 的时候用到了数据库,可是在使用数据库的时候就出现了一些问题,在我查询表中的一些信息时出现了一下问题: Caused by: java.lang.IllegalStateExce ...

  6. [转]Sublime Text操作

    原文地址:http://www.madongdong.me/sublime-text3%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/ 作者:马东东 前言(Prologue) ...

  7. SQL——视图、事务、锁、存储过程

    https://www.bilibili.com/video/av15496406/?p=57 https://blog.csdn.net/u013630349/article/details/750 ...

  8. JavaScript——max-age

    https://zhidao.baidu.com/question/391047416053664205.html 页面优化方式之一,延长过期时间.默认max-age=0

  9. MAC 添加共享,脚本执行

    Linux需要首先安装 yum install samba-client linxu添加windows 公共盘  mount -t cifs  user=guest,password=guest // ...

  10. FlowNet: Learning Optical Flow with Convolutional Networks

    作者:嫩芽33出处:http://www.cnblogs.com/nenya33/p/7122701.html 版权:本文版权归作者和博客园共有 转载:欢迎转载,但未经作者同意,必须保留此段声明:必须 ...