1 条题解

  • 0
    @ 2022-11-19 10:51:52
    #include<bits/stdc++.h>
    using namespace std;
    struct{
    int x;
    }tr[114];
    long long n,s;
    long long a1,a2,q1,q2,t1,t2;
    vector<long long> v[514];
    inline void qs(int i){
    s++;
    if(tr[i].x!=0) qs(tr[i].x);
    }
    inline int sq(int i){
    if(t2==t1) return i;
    t2--;
    return sq(tr[i].x);
    }
    inline int fa(int i,int j){
    if(tr[i].x==tr[j].x) return tr[i].x;
    if(tr[i].x!=0&&tr[j].x!=0) return fa(tr[i].x,tr[j].x);
    }
    int main(){
    cin>>a1>>a2>>n;
    for(int i=1;i<=n;i++){
    cin>>q1>>q2;
    tr[q1].x=q2;
    }
    qs(a1);
    t1=s;
    s=0;
    qs(a2);
    t2=s;
    if(t1>t2) swap(t1,t2),swap(a1,a2);
    a2=sq(a2);
    if(a1==a2) cout<<a1;
    else cout<<fa(a1,a2);
    }
    
    
    
    
  • 1

信息

ID
198
时间
1000ms
内存
256MiB
难度
4
标签
(无)
递交数
52
已通过
26
上传者