hdu 5326(基础题) work
http://acm.hdu.edu.cn/showproblem.php?pid=5326
一道水题,题目大意是在公司里,给出n个员工和目标人数m,然后下面的n-1行是表示员工a管理b,问在这些员工中有多少管理员工的人数是k
起初想的是并查集,后来发现没那么简单,因为两者之间的关系有方向的,a管理b是单向的从b指到a,所以并查集的一个集合里包含了很多种关系
还需要用一个二维数组表示关系,它是一环扣一环的从a找到b再从b找到c......因为如果b管理c,a又管理b,那么a也管理c
code
#include<cstdio>
#include<cstring>
using namespace std;
int father[],vis[][],num[];
void jjc(int x)
{ for (int i=;i<=x;i++)
{
father[i]=i;
num[i]=;
}
}
int find(int x)
{
while (x!=father[x])
x=father[x];
return father[x];
}
int main()
{
int n,m,k,ans,i,j,x,y,sx,sy,q;
while (~scanf("%d %d",&n,&q))
{
m=n-;
memset(vis,,sizeof(vis));
jjc(n);
while (m--)
{
scanf("%d %d",&x,&y);
sx=find(x);
sy=find(y);
if (sx!=sy)
father[sy]=sx; //不能反了
vis[x][y]=;
}
for (k=;k<=n;k++)
{
for (i=;i<=n;i++)
{
for (j=;j<=n;j++)
if (vis[i][k]==&&vis[k][j]==)
vis[i][j]=;
}
}
for (i=;i<=n;i++)
{
for (j=;j<=n;j++)
{
if (father[i]==father[j]&&i!=j&&vis[i][j]==)
num[i]++;
}
}
ans=;
for (i=;i<=n;i++)
{
if (num[i]==q)
ans++;
}
printf("%d\n",ans);
}
return ;
}
还有就是利用搜索的思想递归,放到一个矩阵里面,从第一行开始找代表找1管理的人,找到2,然后在从第二行开始找,代表找2管理的人,同时这个人也是1管理的人,找到了3,再从3开始找...
code
#include<cstdio>
#include<queue>
#include<cstring>
using namespace std;
int mapp[][];
int n,ans;
void bfs(int x,int y)
{
int j=y;
while (j<=n)
{
j++;
if (mapp[x][j]==)
{
ans++;
bfs(j,j);
}
}
j=y;
while (j>=)
{
j--;
if (mapp[x][j]==)
{
ans++;
bfs(j,j);
}
}
}
int main()
{
int m,k,sum,i,x,y,q;
while (~scanf("%d %d",&n,&k))
{
m=n-;sum=;
memset(mapp,,sizeof(mapp));
while (m--)
{
scanf("%d %d",&x,&y);
mapp[x][y]=;
}
for (i=;i<=n;i++)
{
ans=;
bfs(i,i);
// printf("%d\n",ans);
if (ans==k)
sum++;
}
printf("%d\n",sum);
}
return ;
}
hdu 5326(基础题) work的更多相关文章
- HDU字符串基础题(1020,1039,1062,1088,1161,1200,2017)
并不是很精简,随便改改A过了就没有再简化了. 1020. Problem Description Given a string containing only 'A' - 'Z', we could ...
- HDU 1301 Jungle Roads (最小生成树,基础题,模版解释)——同 poj 1251 Jungle Roads
双向边,基础题,最小生成树 题目 同题目 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include<stri ...
- hdu 2089 不要62 (数位dp基础题)
不要62 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- Jam's balance HDU - 5616 (01背包基础题)
Jim has a balance and N weights. (1≤N≤20) The balance can only tell whether things on different side ...
- Android测试基础题(三)
今天接着给大家带来的是Android测试基础题(三). 需求:定义一个排序的方法,根据用户传入的double类型数组进行排序,并返回排序后的数组 俗话说的好:温故而知新,可以为师矣 packag ...
- 小试牛刀3之JavaScript基础题
JavaScript基础题 1.让用户输入两个数字,然后输出相加的结果. *prompt() 方法用于显示可提示用户进行输入的对话框. 语法: prompt(text,defaultText) 说明: ...
- 小试牛刀2:JavaScript基础题
JavaScript基础题 1.网页中有个字符串“我有一个梦想”,使用JavaScript获取该字符串的长度,同时输出字符串最后两个字. 答案: <!DOCTYPE html PUBLIC &q ...
- nyist oj 79 拦截导弹 (动态规划基础题)
拦截导弹 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描写叙述 某国为了防御敌国的导弹突击.发展中一种导弹拦截系统.可是这样的导弹拦截系统有一个缺陷:尽管它的第一发炮弹可以 ...
- linux面试题-基础题1
第1章 基础题1 1.1 在装系统创建Linux分区时,一般至少需要创建两个分区( ) A.FAT.NTFS B. /usr.swap C. /boot.swap D.swap./ 1.2 ...
随机推荐
- trie数的实现
Trie树又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种.典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计.它的优点是:利用字符串 ...
- 安装 telnet
yum install telnet-server yum install telnet service xinetd restart 查询是否正常启动telnet netstat -tn ...
- linux 内核移植
1. 下载内核源码linux-2.6.34,解压到工作目录下. 2. 首先在内核中增加一个 SOC ,到 /arch/arm/mach-s3c64xx 下将mach-smdk6410.c 复制成 ma ...
- apicloud监听返回键(安卓试过)
下面监听写在apiready里面 api.addEventListener({ //使用下方函数此处好像失效了 name: 'keyback' }, function(ret, err) { aler ...
- stevedore动态加载模块
stevedore动态加载模块,stevedore使用setuptools的entry points来定义并加载插件.entry point引用的是定义在模块中的对象,比如类.函数.实例等,只要在im ...
- 申请ssl证书报提示caa提示
申请ssl证书报下面提示caa提示,这和dns有关,换一组dns重新申请 send challenge err[acme error 'urn:acme:error:connection': DNS ...
- linux启动jmeter(二十三),执行./jmeter.sh报错解决方法(转载)
转载自 http://www.cnblogs.com/yangxia-test 1.l-bash: ./jmeter.sh: Permission denied解决办法:jmeter.sh的执行权限改 ...
- appium多机并行测试
在实际应用中需要对多个机型并行测试,节省时间 多机测试的思路 启动多个appium server与多台机器交互(android和ios均可) 注意:一定要使用node安装appium的命令行,使用 ...
- js前端导出excel:json形式的导出
第一中形式的导出:主要是表头对应主体数据,json形式的导出 js库文件名称 : table2excel.js这个js库文件是网上找的,并且自己根据自己业务需求把内容改了一下复制到 table2exc ...
- 运行wmic命令异常:java.io.IOException: Cannot run program "wmic": CreateProcess error=2, ϵͳÕҲ»µ½ָ¶解决记录
之前的一篇博文获取电脑cpu序列号在一同事电脑出现上述异常 百度一下网上只有一位外国网友朋友这个问题(地址),并且还没人回复,你能靠自己了 定位了一下出错代码: Process process = R ...