标签:
分析:没必要用并查集,数据一定是裸的mst(最小生成树),直接O(n)找lca即可AC。
代码:
#include<cstdio> #include<iostream> using namespace std; #define N 10010005 int fa[N],n,m; bool check[N];//数据一定是mst int main(){ scanf("%d",&n); for(int i=1,x,y;i<n;i++){ cin>>x>>y; fa[y]=x; } int from,to; cin>>from>>to; while(from){//O(n)往上搜 check[from]=true; from=fa[from]; } while(to){ if(check[to]){ printf("%d\n",to); return 0; } to=fa[to]; } return 0; }
标签:
原文地址:http://www.cnblogs.com/shenben/p/5559181.html