zoukankan      html  css  js  c++  java
  • HDU 5326 Work

    题意:给一个树型关系图,父亲结点管理儿子结点,问有多少个点管理k个点。

    解法:dfs。

    代码:

    #include<stdio.h>
    #include<iostream>
    #include<algorithm>
    #include<string>
    #include<string.h>
    #include<math.h>
    #include<limits.h>
    #include<time.h>
    #include<stdlib.h>
    #include<map>
    #include<queue>
    #include<set>
    #include<stack>
    #include<vector>
    #define LL long long
    using namespace std;
    int n, k;
    vector <int> v[105];
    int ans;
    int dfs(int u)
    {
        int res = 0;
        for(int i = 0; i < v[u].size(); i++)
        {
            res += dfs(v[u][i]);
        }
        if(res == k)
            ans++;
        return res + 1;
    }
    int main()
    {
        while(~scanf("%d%d", &n, &k))
        {
            for(int i = 0; i < 105; i++)
                v[i].clear();
            int degree[105] = {0};
            ans = 0;
            for(int i = 0; i < n - 1; i++)
            {
                int a, b;
                scanf("%d%d", &a, &b);
                v[a].push_back(b);
                degree[b]++;
            }
            for(int i = 1; i <= n; i++)
            {
                if(degree[i] == 0)
                    dfs(i);
            }
            printf("%d
    ", ans);
        }
        return 0;
    }
    

    现场是队友做的……后来问他的时候被误导了……以为不只一棵树……然而就是一棵啦……= =

  • 相关阅读:
    第三个Sprint冲刺第三天
    回答第1-17章
    阅读第13-17章
    阅读第10、11、12章
    阅读第8,9,10章
    作业5.2 5.3
    四则运算 测试与封装 5.1
    阅读第5-7章
    阅读1-5章
    我给队友做的汉堡包
  • 原文地址:https://www.cnblogs.com/Apro/p/4686400.html
Copyright © 2011-2022 走看看