1 条题解

  • 0
    @ 2026-1-27 19:22:49
    #include<bits/stdc++.h>
    using namespace std;
    
    int main(){
        int n;                   // [1] n-树的节点总数(编号1~n)
        cin >> n; 
        // children数组:每个元素是一个vector,存储对应父节点的所有子节点
        // 例如 children[dad] 存储父节点dad的所有子节点
        vector<int> children[110];
        int dad, son;
        // 读入n-1对父子关系(因为树有n个节点,所以有n-1条边)
        for(int i = 1; i < n; i++){
            cin >> dad >> son;
            children[dad].push_back(son);  // [2] 将子节点son添加到父节点dad的子节点列表中
        }
        // 按节点编号从小到大,输出每个节点的子节点数量
        for(int i = 1; i <= n; i++){
            // children[i].size() 就是节点i的子节点数量(列表的长度)
            cout << children[i].size() << " ";
        }
        return 0;
    }
    
    • 1

    信息

    ID
    1066
    时间
    1000ms
    内存
    256MiB
    难度
    1
    标签
    递交数
    2
    已通过
    1
    上传者