POJ1330-Nearest Common Ancestors【tarjan,LCA】
正题
题目链接:
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】相关推荐
- POJ 1330 Nearest Common Ancestors 【LCA模板题】
任意门:http://poj.org/problem?id=1330 Nearest Common Ancestors Time Limit: 1000MS Memory Limit: 10000 ...
- POJ 1330:Nearest Common Ancestors【lca】
题目大意:唔 就是给你一棵树 和两个点,问你这两个点的LCA是什么 思路:LCA的模板题,要注意的是在并查集合并的时候并不是随意的,而是把叶子节点合到父节点上 #include<cstdio&g ...
- [POJ1330 Nearest Common Ancestors]
[关键字]:LCA [题目大意]:求出两点间的最近公共祖先. //=================================================================== ...
- P5236-[模板]静态仙人掌【tarjan,LCA】
正题 题目链接:https://www.luogu.com.cn/problem/P5236 题目大意 给一个边仙人掌(一条边至多在一个环中),每次询问两点之间的距离 解题思路 我们对于每个环新建方点 ...
- ssl1746-商务旅行【tarjan,LCA】
正题 题目大意 一个n-1个点的有向无环图,给出若干个点,要求依次到达的最少时间. 解题思路 有向无环图我们可以把其看做一颗树,然后每次用LCA求两个点之间的距离,然后把所有距离统计一下就是结果. 代 ...
- LCA——JD 3055 Nearest Common Ancestors
3055: Nearest Common Ancestors Time Limit: 1 Sec Memory Limit: 128 MB Description 给定N个节点的一棵树,有K次查询 ...
- POJ 1330 Nearest Common Ancestors / UVALive 2525 Nearest Common Ancestors (最近公共祖先LCA)...
POJ 1330 Nearest Common Ancestors / UVALive 2525 Nearest Common Ancestors (最近公共祖先LCA) Description A ...
- Nearest Common Ancestors(LCA板子)
题目链接:http://poj.org/problem?id=1330 Nearest Common Ancestors Time Limit: 1000MS Memory Limit: 1000 ...
- JDOJ 3055: Nearest Common Ancestors
JDOJ 3055: Nearest Common Ancestors JDOJ传送门 Description 给定N个节点的一棵树,有K次查询,每次查询a和b的最近公共祖先. 样例中的16和7的公共 ...
最新文章
- 面试前赶紧看了5道Python Web面试题,Python面试题No17
- 关于安装bitdenfender的问题
- STOMP协议规范--转载
- SAP复合角色更改后扩展到派生节点
- 产品设计思维工具(2019年做产品的一点总结)
- ae图片无缝循环滚动_HTML图片滚动
- 图像处理软件Acorn for Mac如何创建新图像?
- 软件评测师考试需要知道什么?
- QuickCHM2.6出现不支持此接口 的两种解决办法(补充)
- HALCON获取区域的中心点、面积和最小外接圆半径
- 微信浏览器内打开App Store链接,并跳转到App指定安装页面
- python-非零整数代表True
- 2014中国机器视觉行业十大知名品牌
- linux服务器的Gzip文件压缩方法[转]
- Redhat_rhel_linux镜像下载,持续更新......
- 一体的综合化云控平台
- 计算机专业程序员必备的几大技术栈:计算机历史,CPU,操作系统
- 老铁,了解一下Python吗?
- 怎样最大程度获得谷歌精选摘要(featured snippets)
- 股市理论---牛马熊
热门文章
- bios是固定在微型计算机上的一块RoM,计算机硬件笔试试题
- mysql外键约束创建及删除_MySQL中的外键的创建,约束和删除
- 10 邮件槽_员工主动发离职邮件,提出申请又反悔,法院判决让人懵了!
- 正则表达式在python中的应用_学习正则表达式在python中的应用
- idea 一直在build_让web开发部署提速 8 倍的一款 IDEA 插件,你有在用?
- mybatis mysql usegeneratedkeys_mybatis中useGeneratedKeys用法--插入数据库后获取主键值
- mysql下载了解压版怎么_教你安装Mysql(解压版/非安装包)图文教程
- [汇编语言]实验五:编写,调试具有多个段的程序
- 高等数学下-赵立军-北京大学出版社-题解-练习8.2
- 蓝桥杯2015初赛-奇妙的数字