Nearest Common Ancestors POJ - 1330 (LCA)

xiaoxiao2021-02-28  126

模板题

#include <cstdio> #include <cstring> #include <vector> #include <algorithm> using namespace std; const int maxn=10005; int fa[maxn*4]; void solve(int u,int v) { int fv=v; while(fa[u]!=u) { fv=v; while(fa[fv]!=fv) { if(u==fv) { printf("%d\n",u); return ; } fv=fa[fv]; } u=fa[u]; } printf("%d\n",u); return ; } int main() { int t; scanf("%d",&t); while(t--) { int u,v; int n; scanf("%d",&n); for(int i=1; i<=n; i++) fa[i]=i; for(int i=1; i<n; i++) { scanf("%d%d",&u,&v); fa[v]=u; } scanf("%d%d",&u,&v); solve(u,v); } }

转载请注明原文地址: https://www.6miu.com/read-49314.html

最新回复(0)