您的位置:首页 > 其它

pku 1330 LCA

2010-05-26 22:09 316 查看
第一道LCA

#include<stdio.h>
#include<string.h>
#define N 10001
int unionset
,visit
;
int main()
{
int T,n,a,b,i;
scanf("%d",&T);
while(T--)
{
scanf("%d",&n);
for(i=1;i<=n;i++) //init it
{
unionset[i]=i;
visit[i]=0;
}
for(i=1;i<n;i++)
{
scanf("%d%d",&a,&b);
unionset[b]=a;
}
scanf("%d%d",&a,&b);
/*find the root*/
visit[a]=1;
a=unionset[a];
while(a!=unionset[a])
{
a=unionset[a];
visit[a]=1;
}
while(b!=unionset[b])
{
if(visit[b]) break;
b=unionset[b];
}
printf("%d\n",b);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: