2 条题解

  • 0
    @ 2026-1-28 14:50:55

    仔细想想,一颗真正有分叉的树怎么可能一笔画,所以只能是退化成一条链的树

    #include<bits/stdc++.h>
    using namespace std;
    
    int main(){
        int n; cin >> n;
        vector<int> d(n + 5);
        for(int i = 1; i < n; i ++){
            int u, v; cin >> u >> v;
            d[u] ++, d[v] ++;
        }
        if(n == 2)  cout << "1 2" << endl;
        else{
            vector<int> res;
            for(int i = 1; i <= n; i ++)
                if(d[i] == 1)   res.push_back(i);
                else if(d[i] != 2){
                    cout << -1 << endl;
                    return 0;
                }
            cout << res[0] << ' ' << res[1] << endl;
        }
    }
    

    信息

    ID
    158
    时间
    1000ms
    内存
    256MiB
    难度
    3
    标签
    递交数
    37
    已通过
    16
    上传者