POJ 1330

#include<iostream>
#include<cstdio>
#define MAXN 10005
using namespace std;

int pre[MAXN];
bool boo[MAXN];

void init(int n);
int go_back(int num);

int main()
{
    //freopen("acm.acm","r",stdin);
    int t;
    int n;
    int i;
    int u;
    int v;
    cin>>t;
    while(t --)
    {
        //memset(boo,false,sizeof(boo));
        cin>>n;
        init(n);
        for(i = 0; i < n - 1; ++ i)
        {
            cin>>u>>v;
            pre[v] = u;
        }
        cin>>u>>v;
        go_back(u);
        cout<<go_back(v)<<endl;
    }
}

void init(int n)
{
    int i;
    for(i = 1; i <= n; ++ i)
    {
        pre[i] = i;
        boo[i] = false;
    }
}

int go_back(int num)
{
    if(num == pre[num] || boo[num] == true)
    {
        if(!boo[num])
            boo[num] = true;
        return num;
    }
    else
    {
        boo[num] = true;
        return go_back(pre[num]);
    }
}

关注我的公众号,当然,如果你对Java, Scala, Python等技术经验,以及编程日记,感兴趣的话。 

技术网站地址: vmfor.com

原文地址:https://www.cnblogs.com/gavinsp/p/4563378.html