ZQU_ACM 协会 DFS
来源:互联网 发布:安卓蓝光iso播放软件 编辑:程序博客网 时间:2024/04/30 01:44
ZQU_ACM 协会
Time Limit:1000MS Memory Limit:65536K
Total Submit: Accepted:
Description
ACMer在ZQU已经有好几年的历史了,最近,他们想成立一个协会,叫ZQU_ICPC协会。我们都知道,在ZQU成立一个协会是需要很多手续的,而且还有一个人数上的条件,即必须满足一定的人数才可以得到学校的批准。
所以,现有的ACMer开始到处宣传,希望能够找到尽量多的人进入协会。
现在给出同学们的关系以及最开始的ACMer的号码。
请问他们的人数足够满足条件吗?
Input
输入有多个测试用例。
每个测试用例的第一行是三个数字n,m和num,n表示一共有多少个人,m表示有多少同学之间是有关系的,num表示成立协会的最少人数。( 1 < n <100 ,m<200 , num <= n )
接下来有m行,每行两个数字 a b,表示a和b有关系,只要其中一个加入ZQU_ICPC协会,那么另外一个也会加入到ACMer的行列。
接下来一行是一个数字k,表示最开始有k个ACMer,接下来一行有k个数字(0 <= ki < n)表示最初的ACMer们的编号。
Output
对于每个测试用例,如果满足人数上的条件,输出"YES",否则输出"SORRY"
Sample Input
10 5 51 20 26 74 23 114
Sample Output
YES
Source
肇庆学院第二届校赛
代码:
#include<iostream>
#include<queue>
using namespace std;
int map[102][102]; //标记是否连通
int visit[102]; //标记该点是否用过
int main()
{
int n,m,num;
int a,b;
int k;
int i,t;
int count;
while(scanf("%d%d%d",&n,&m,&num)!=EOF)
{
memset(map,0,sizeof(map));
memset(visit,0,sizeof(visit));
for(i=0;i<m;i++)
{
scanf("%d%d",&a,&b);
map[a][b]=1;
map[b][a]=1;
}
scanf("%d",&k);
queue<int>q;
for(i=0;i<k;i++) //把k个初始的编号入队
{
scanf("%d",&t);
q.push(t);
}
if(k>=num) //初始值已经满足条件,直接YES
{
printf("YES/n");
continue;
}
//bfs
count=0;
while(!q.empty())
{
t=q.front();
q.pop();
if(visit[t]==0) //每次用过都要标记
{
visit[t]=1;
count++;
}
for(i=0;i<n;i++)
{
if(map[t][i]==1&&visit[i]==0) //有联系的点要入队
{
count++;
visit[i]=1;
q.push(i);
}
}
}
printf("%d/n",count);
if(count>=num)
printf("YES/n");
else
printf("SORRY/n");
}
return 0;
}
- ZQU_ACM 协会 DFS
- ZSC 1155 ZQU_ACM 协会 (并查集入门)
- 协会网站
- 心理协会
- ZSC_ACM 协会
- 美国创业者协会信条
- 什么是PMI协会?
- 世界超人协会
- 沂水信息技术协会
- Web3d协会改版
- 河北大学算法艺术协会
- 关于网络标准协会
- 一抹绿植保协会
- 科技协会全会发言
- 开发者协会成立啦
- 华中师范大学 ACM 协会博客
- 重庆大学科幻协会发展史
- 协会批判日记
- 控件Enable=false时字体显示不清晰
- iPhoDroid再度更新 iPhone轻松玩转Android
- VC 键盘虚拟码
- 软件代码设计零碎杂想-6
- 关于"保持 HTTP 连接"和“连接超时N秒"的说明
- ZQU_ACM 协会 DFS
- VC socket编程
- Hive简介
- Oracle PL/SQL中取得當前程式名稱
- 音乐播放器Banshee 1.7.4 发布
- ajax的同步 异步 jquery同步
- jquery 同步异步
- 搭建Sipdroid本地开发环境
- 再谈NBA频道