poj 1330lca模板题离线算法
#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模板题离线算法的更多相关文章
- POJ 1273 - Drainage Ditches - [最大流模板题] - [EK算法模板][Dinic算法模板 - 邻接表型]
题目链接:http://poj.org/problem?id=1273 Time Limit: 1000MS Memory Limit: 10000K Description Every time i ...
- 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 ...
- POJ 1502 MPI Maelstrom(模板题——Floyd算法)
题目: BIT has recently taken delivery of their new supercomputer, a 32 processor Apollo Odyssey distri ...
- HDU 1874 畅通工程续(模板题——Floyd算法)
题目: 某省自从实行了很多年的畅通工程计划后,终于修建了很多路.不过路多了也不好,每次要从一个城镇到另一个城镇时,都有许多种道路方案可以选择,而某些方案要比另一些方案行走的距离要短很多.这让行人很困扰 ...
- SPOJ RPLN (模板题)(ST算法)【RMQ】
<题目链接> 题目大意:给你一段序列,进行q次区间查询,每次都输出询问区间内的最小值. 解题分析: RMQ模板题,下面用在线算法——ST算法求解.不懂ST算法的可以看这篇博客 >& ...
- [poj2449]Remmarguts' Date(K短路模板题,A*算法)
解题关键:k短路模板题,A*算法解决. #include<cstdio> #include<cstring> #include<algorithm> #includ ...
- HDU 2544 最短路(模板题——Floyd算法)
题目: 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt.但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要寻找最短的从商店到赛场的路线,你 ...
- 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 ...
- A Plug for UNIX POJ - 1087(模板题 没啥好说的。。就用了一个map)
题意: 几种插头,每一种都只有一个,但有无限个插头转换器,转换器(a,b) 意味着 可以把b转换为a,有几个设备,每个设备对应一种插头,求所不能匹配插头的设备数量 这个题可以用二分图做 , 我用的是最 ...
随机推荐
- android将对象序列化到文件:直接写文件与用Serializable接口的对比
1.用文件读写1024个对象的日志 10-09 16:12:44.493 6385-6385/com.example.tt.downtest D/Serializable_TAG: write 102 ...
- 转 Oracle 12c: Managing Resources
http://www.oracle-class.com/?p=3058 1. Introduction: Oracle database 12c comes with several Resource ...
- jmeter(一)工具介绍(二)
1.Jmeter 概要描叙 jmeter 是一款专门用于功能测试和压力测试的轻量级测试开发平台.多数情况下是用作压力测试,该测试工具在阿里巴巴有着广泛的使用,估计是不要钱吧,哈哈,功能上来说,整个平台 ...
- sdut1283Five in a Row, Again
一简单的状压题 比赛时跑偏了 ,脑子最近乱的跟浆糊似得呢.. #include <iostream> #include<cstdio> #include<cstring& ...
- Android开发中使用数据库时出现java.lang.IllegalStateException: Cannot perform this operation because the connection pool has been closed.
最近在开发一个 App 的时候用到了数据库,可是在使用数据库的时候就出现了一些问题,在我查询表中的一些信息时出现了一下问题: Caused by: java.lang.IllegalStateExce ...
- [转]Sublime Text操作
原文地址:http://www.madongdong.me/sublime-text3%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/ 作者:马东东 前言(Prologue) ...
- SQL——视图、事务、锁、存储过程
https://www.bilibili.com/video/av15496406/?p=57 https://blog.csdn.net/u013630349/article/details/750 ...
- JavaScript——max-age
https://zhidao.baidu.com/question/391047416053664205.html 页面优化方式之一,延长过期时间.默认max-age=0
- MAC 添加共享,脚本执行
Linux需要首先安装 yum install samba-client linxu添加windows 公共盘 mount -t cifs user=guest,password=guest // ...
- FlowNet: Learning Optical Flow with Convolutional Networks
作者:嫩芽33出处:http://www.cnblogs.com/nenya33/p/7122701.html 版权:本文版权归作者和博客园共有 转载:欢迎转载,但未经作者同意,必须保留此段声明:必须 ...