正题

题目链接:
http://poj.org/problem?id=1330


题目大意

就是给出一棵树,求LCA(最近公共祖先)


解题思路

用tarjan求LCA,这里给出tarjan算法


代码

#include<cstdio>
#include<iostream>
using namespace std;
struct line{int next,to;
}a[20001];
int father[10001],n,m,q,p,v[10001],ans,tot,ls[10001],t,x,y,in[10001];
bool ok;
void addl(int x,int y)//加边
{a[++tot].to=y;a[tot].next=ls[x];ls[x]=tot;
}
int find(int x)//并查集优化
{return x==father[x]?x:find(father[x]);
}
void tarjan(int x)
{v[x]=1;for (int i=ls[x];i;i=a[i].next)//子节点{int y=a[i].to;if (v[y]) continue;tarjan(y);//tarjan一遍father[y]=x;//记录祖先}if (ok) return;//标记已找到if (v[q]==2 && x==p){printf("%d\n",find(q));//输出ok=true;return;}if (v[p]==2 && x==q)///输出{printf("%d\n",find(p));ok=true;return;}v[x]=2;
}
int main()
{scanf("%d",&t);for (;t;t--){scanf("%d",&n);tot=0;ok=0;for (int i=1;i<=n;i++){ls[i]=0;father[i]=i;v[i]=0;in[i]=0;}for (int i=1;i<n;i++){scanf("%d%d",&x,&y);in[y]++;addl(x,y);addl(y,x);}scanf("%d%d",&q,&p);for (int i=1;i<=n;i++)//寻找根if (in[i]==0) tarjan(i);//printf("%d\n",ans);}
}

POJ1330-Nearest Common Ancestors【tarjan,LCA】相关推荐

  1. POJ 1330 Nearest Common Ancestors 【LCA模板题】

    任意门:http://poj.org/problem?id=1330 Nearest Common Ancestors Time Limit: 1000MS   Memory Limit: 10000 ...

  2. POJ 1330:Nearest Common Ancestors【lca】

    题目大意:唔 就是给你一棵树 和两个点,问你这两个点的LCA是什么 思路:LCA的模板题,要注意的是在并查集合并的时候并不是随意的,而是把叶子节点合到父节点上 #include<cstdio&g ...

  3. [POJ1330 Nearest Common Ancestors]

    [关键字]:LCA [题目大意]:求出两点间的最近公共祖先. //=================================================================== ...

  4. P5236-[模板]静态仙人掌【tarjan,LCA】

    正题 题目链接:https://www.luogu.com.cn/problem/P5236 题目大意 给一个边仙人掌(一条边至多在一个环中),每次询问两点之间的距离 解题思路 我们对于每个环新建方点 ...

  5. ssl1746-商务旅行【tarjan,LCA】

    正题 题目大意 一个n-1个点的有向无环图,给出若干个点,要求依次到达的最少时间. 解题思路 有向无环图我们可以把其看做一颗树,然后每次用LCA求两个点之间的距离,然后把所有距离统计一下就是结果. 代 ...

  6. LCA——JD 3055 Nearest Common Ancestors

    3055: Nearest Common Ancestors Time Limit: 1 Sec   Memory Limit: 128 MB Description 给定N个节点的一棵树,有K次查询 ...

  7. POJ 1330 Nearest Common Ancestors / UVALive 2525 Nearest Common Ancestors (最近公共祖先LCA)...

    POJ 1330 Nearest Common Ancestors / UVALive 2525 Nearest Common Ancestors (最近公共祖先LCA) Description A ...

  8. Nearest Common Ancestors(LCA板子)

    题目链接:http://poj.org/problem?id=1330 Nearest Common Ancestors Time Limit: 1000MS   Memory Limit: 1000 ...

  9. JDOJ 3055: Nearest Common Ancestors

    JDOJ 3055: Nearest Common Ancestors JDOJ传送门 Description 给定N个节点的一棵树,有K次查询,每次查询a和b的最近公共祖先. 样例中的16和7的公共 ...

最新文章

  1. 面试前赶紧看了5道Python Web面试题,Python面试题No17
  2. 关于安装bitdenfender的问题
  3. STOMP协议规范--转载
  4. SAP复合角色更改后扩展到派生节点
  5. 产品设计思维工具(2019年做产品的一点总结)
  6. ae图片无缝循环滚动_HTML图片滚动
  7. 图像处理软件Acorn for Mac如何创建新图像?
  8. 软件评测师考试需要知道什么?
  9. QuickCHM2.6出现不支持此接口 的两种解决办法(补充)
  10. HALCON获取区域的中心点、面积和最小外接圆半径
  11. 微信浏览器内打开App Store链接,并跳转到App指定安装页面
  12. python-非零整数代表True
  13. 2014中国机器视觉行业十大知名品牌
  14. linux服务器的Gzip文件压缩方法[转]
  15. Redhat_rhel_linux镜像下载,持续更新......
  16. 一体的综合化云控平台
  17. 计算机专业程序员必备的几大技术栈:计算机历史,CPU,操作系统
  18. 老铁,了解一下Python吗?
  19. 怎样最大程度获得谷歌精选摘要(featured snippets)
  20. 股市理论---牛马熊

热门文章

  1. bios是固定在微型计算机上的一块RoM,计算机硬件笔试试题
  2. mysql外键约束创建及删除_MySQL中的外键的创建,约束和删除
  3. 10 邮件槽_员工主动发离职邮件,提出申请又反悔,法院判决让人懵了!
  4. 正则表达式在python中的应用_学习正则表达式在python中的应用
  5. idea 一直在build_让web开发部署提速 8 倍的一款 IDEA 插件,你有在用?
  6. mybatis mysql usegeneratedkeys_mybatis中useGeneratedKeys用法--插入数据库后获取主键值
  7. mysql下载了解压版怎么_教你安装Mysql(解压版/非安装包)图文教程
  8. [汇编语言]实验五:编写,调试具有多个段的程序
  9. 高等数学下-赵立军-北京大学出版社-题解-练习8.2
  10. 蓝桥杯2015初赛-奇妙的数字