题目链接:点击打开链接

题目大意:有n个人。各自管理不同的人,问有多少人管理k个人。

思路:先记录每一个人的直接上级。然后模拟路径压缩的过程进行计数求和。

#include<stdio.h>
#include<string.h>
int p[105],sum[105];
void init()
{
int i;
for(i=0;i<105;i++)
{
p[i]=i;
sum[i]=1;
}
}
void findroot(int x)
{
int r=x;
while(r!=p[r])
r=p[r];
int i,j;
i=x;
while(i!=r)
{
j=p[i];
sum[p[i]]+=1;
// p[i]=r;
i=j; //模拟路径压缩过程,注意不要真的进行路径压缩。
}
}
int main()
{
int n,k,i,j,a,b;
while(scanf("%d%d",&n,&k)!=EOF)
{
init();
for(i=1;i<n;i++)
{
scanf("%d%d",&a,&b);
if(a!=b)
p[b]=a;
}
for(i=1;i<=n;i++)
{
findroot(i);
}
int ans=0;
for(i=1;i<=n;i++)
{
sum[i]--;
//printf("%d\n",sum[i]);
if(sum[i]==k)ans++;
}
printf("%d\n",ans);
}
return 0;
}

hdu5326 Work的更多相关文章

随机推荐

  1. Find Minimum in Rotated Sorted Array 典型二分查找

    https://oj.leetcode.com/problems/find-minimum-in-rotated-sorted-array/ Suppose a sorted array is rot ...

  2. windows php文件下载地址

    http://windows.php.net/downloads/releases/archives/

  3. tp3.2 复合查询or

    tp3.2 复合查询or $where['goods_name'] = array("like","%$q%");$where['goods_sn'] = ar ...

  4. ROS-TF-Time

    前言:如何在特定时间进行转换.让第二只乌龟去第一只乌龟在5秒前的地方. 参考自:http://wiki.ros.org/tf/Tutorials/Time%20travel%20with%20tf%2 ...

  5. BZOJ 4057 状压DP

    思路: 状压一下 就完了... f[i]表示选了的集合为i 转移的时候判一判就好了.. //By SiriusRen #include <cstdio> #include <cstr ...

  6. 快速录入快递地址API接口实现

    电商.ERP等行业下单环节极其重要,如何提高下单的效率已经成为首要问题.快速下单对于客户来说,为提前发货争取了时间:对于卖家来说,提高了库存周转率及利用率.快速下单的接口实现,需要解决如下几个问题:1 ...

  7. js-var变量作用域

    看代码: var a=10; function fn1(){ alert(a); var a=20; alert(a); } 运行结果:undefined 和 20 注意: 在函数内,变量如没用var ...

  8. 远程连接Oracle设置

    1:打开net manager:开始->程序->oracle->配置和移植工具->Net Manager 2:添加服务器名->名子自定义,一般根据项目自定义,自己知道就行 ...

  9. 【Oracle】数据迁移工具(1):SQL Loader

    SQL Loader是一种数据加载工具,可以把外部数据加载到Oracle数据库中.SQL Loader中的参数有很多,本文只在第一部分中列出常用参数.要想运用SQL Loader工具 ,需要我们编辑一 ...

  10. electron 学习

    index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...