题目链接:点击打开链接

题目大意:有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. 14招搞定JavaScript调试

    14招搞定JavaScript调试 译者按: 很多时候,大家可能只是依靠console.log来调试JavaScript代码,这样做的局限性不言而喻,这篇博客将教你几招实用的调试技巧. 原文: The ...

  2. Python 2:str.title()(使字符串每个单词首字母大写)

    name = "hello,world! hello,python!" print(name.title()) #单词首字母大写 运行结果将会是:Hello,World!Hello ...

  3. 理解java中的ThreadLocal 专题

    ThreadLocal每一印象: public class IncrementWithStaticVariable{ private static int seqNum = 0; public int ...

  4. android黑科技系列——分析某直播App的协议加密原理以及调用加密方法进行协议参数构造

    一.前言 随着直播技术火爆之后,各家都出了直播app,早期直播app的各种请求协议的参数信息都没有做任何加密措施,但是慢慢的有人开始利用这个后门开始弄刷粉关注工具,可以让一个新生的小花旦分分钟变成网红 ...

  5. [原创]Linux(CentOS)下安装mongodb

    和上一篇一样,装个这个踩了无数个坑…… 1.下载 wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel55-3.2.12.tgz ...

  6. js 如何给标签增加属性

    <html> <head> <meta charset="UTF-8"> <title></title> </he ...

  7. XML知识总结

    1.XML概念及作用? XML( eXtensible Markup Language,可扩展标记语言)是一种简单的数据存储语言 作用:用来存储和交换数据 无法描述页面的排版和显示形式 2.XML和X ...

  8. ASP.NET刷新页面的六种方法

    第一: private void Button1_Click( object sender, System.EventArgs e )   {      Response.Redirect( Requ ...

  9. Java中final,finally和finalize区别

    Day11_SHJavaTraing_4-18-2017 Java中final,finally和finalize区别 1.final—修饰符(关键字) ①final修饰类,表示该类不可被继承 ②fin ...

  10. C++版的LLC代码

    图像稀疏编码总结:LLC和SCSPM,文章对稀疏编码讲解非常详细. <Locality-constrained Linear Coding for Image Classification> ...