HDU 5326 Work

来源:互联网 发布:java date日期格式化 编辑:程序博客网 时间:2024/05/21 16:59

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5326


题意:有n个人,给出n-1个关系a  b,表示a是b的直属上司,如果c是a的直属上司,我们可以认为c管理a和b共2人,问有多少人可以不多不少管理k个人


思路:数据范围很少,没有环,直接建立一个邻接链表搜索每一个点即可



#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>#include <vector>using namespace std;vector <int> G[130];int vis[130];int dfs(int u){    int tmp=0;    for (int i=0;i<G[u].size();i++)    {        tmp++;        tmp+=dfs(G[u][i]);    }    return tmp;}int main(){    int n,k;    while (scanf("%d%d",&n,&k)!=EOF)    {        memset(G,0,sizeof(G));        memset(vis,0,sizeof(vis));        for (int i=0;i<n-1;i++)        {            int a,b;            scanf("%d%d",&a,&b);            G[a].push_back(b);        }        int res=0;        for (int i=1;i<=n;i++)        {            int tmp=dfs(i);            if (tmp==k)                res++;        }        printf("%d\n",res);    }}


0 0
原创粉丝点击