hdu5326 Work
题目链接:点击打开链接
题目大意:有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的更多相关文章
随机推荐
- 14招搞定JavaScript调试
14招搞定JavaScript调试 译者按: 很多时候,大家可能只是依靠console.log来调试JavaScript代码,这样做的局限性不言而喻,这篇博客将教你几招实用的调试技巧. 原文: The ...
- Python 2:str.title()(使字符串每个单词首字母大写)
name = "hello,world! hello,python!" print(name.title()) #单词首字母大写 运行结果将会是:Hello,World!Hello ...
- 理解java中的ThreadLocal 专题
ThreadLocal每一印象: public class IncrementWithStaticVariable{ private static int seqNum = 0; public int ...
- android黑科技系列——分析某直播App的协议加密原理以及调用加密方法进行协议参数构造
一.前言 随着直播技术火爆之后,各家都出了直播app,早期直播app的各种请求协议的参数信息都没有做任何加密措施,但是慢慢的有人开始利用这个后门开始弄刷粉关注工具,可以让一个新生的小花旦分分钟变成网红 ...
- [原创]Linux(CentOS)下安装mongodb
和上一篇一样,装个这个踩了无数个坑…… 1.下载 wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel55-3.2.12.tgz ...
- js 如何给标签增加属性
<html> <head> <meta charset="UTF-8"> <title></title> </he ...
- XML知识总结
1.XML概念及作用? XML( eXtensible Markup Language,可扩展标记语言)是一种简单的数据存储语言 作用:用来存储和交换数据 无法描述页面的排版和显示形式 2.XML和X ...
- ASP.NET刷新页面的六种方法
第一: private void Button1_Click( object sender, System.EventArgs e ) { Response.Redirect( Requ ...
- Java中final,finally和finalize区别
Day11_SHJavaTraing_4-18-2017 Java中final,finally和finalize区别 1.final—修饰符(关键字) ①final修饰类,表示该类不可被继承 ②fin ...
- C++版的LLC代码
图像稀疏编码总结:LLC和SCSPM,文章对稀疏编码讲解非常详细. <Locality-constrained Linear Coding for Image Classification> ...