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 ...
随机推荐
- Swift中的的注释
1. Swift支持与OC中相同的 /**/ ./***/ 不同点Swift支持 /*/**/ 这样的注释 ,多行注释 2. 直接双杠注释 // 单行注释 3. 利用 //MARK: 返 ...
- C#整数的三种强制类型转换int、Convert.ToInt32()、int.Parse()的区别
.int适合简单数据类型之间的转换,C#的默认整型是int32(不支持bool型): .int.Parse(string sParameter)是个构造函数,参数类型只支持string类型: .Con ...
- js基础-对象
对象是一组属性方法的无序集 除了字符串.数值类型.布尔类型.null.undefined 之外的其他都是对象类型 对象都是引用类型 Object类型对象.数组类型对象 如果一个普通函数前面加了new ...
- js基础-直接量与变量
直接量 123 "abc" console.log("234") true false 变量 var x = 123 变量可先声明后赋值 var定义的都是局部变 ...
- idea 设置 转自 https://www.cnblogs.com/jajian/p/8136672.html
前面已经介绍过Settings上中部分,接下来继续剩余的部分 IntelliJ IDEA(四) :Settings(上) IntelliJ IDEA(五) :Settings(中) 0|1一.Buil ...
- kibana test
https://www.cnblogs.com/yiwangzhibujian/p/7137546.html curl -XPUT http://localhost:9200/shakespeare ...
- 大型运输行业实战_day13_1_定时任务spring-quartz
1.jar包 拷贝quartz-2.2.3.jar包到项目 2.编写定时任务类TicketQuart.java package com.day02.sation.task; import com.da ...
- jpa orderby
return criteriaQuery.where(in).orderBy(new OrderImpl(root.get("field1"))).getRestriction() ...
- Jboss 数据源密码明文加密
转载:https://blog.csdn.net/iberr/article/details/40896479 备注:解密小程序没有测试,知识了解了加密解密过程.对自己的帮助是看懂了连接数据库的配置, ...
- TOJ 3589 likaer的最长点距
传送门:http://acm.tzc.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=3589 时间限制(普通/Jav a) ...