唉,可爱的小朋友---(DFS)
Input数据有多个case,每个case先输入两个值N(1<=N<=10)和M(1<=M<=10),表示有N个小朋友(从0到N-1标号),和M个小皮球。接着有N行,第i行先输入一个K(0<=K<N),表示第i个小朋友有喜欢一起玩的其他小朋友的个数,然后后面有K个整数,表示K个小朋友的标号(不重复)。如果A喜欢和B一起玩,则B也喜欢和A一起玩,这个数据在输入时保证。两个case之间有空行Output对于每个case,如果老师可以上好课,输出YES,否则NO。Sample Input
3 2
2 1 2
2 2 0
2 0 1
Sample Output
YES 分析:我们可以将这几个小朋友分别分到不同集合中去,,然后判断一个点是不是可以放到一个集合中,这时候就要找到那个集合的根,同时,要确保这个点不与集合里面所有的点冲突,
,通过深搜枚举出所有的可能,判断是否满足题意!
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int maxn=;
int n,m,mapp[maxn][maxn];
int root[maxn];
bool flag; void DFS(int x,int y){/*代表人数,y代表球数*/
if(flag) return ;/*说明找到了解决题意的方案*/
if(y>m) return ;/*说明球数超过了预算*/
if(x==n){/*人数到达了指定要求,并且球数未超标,符合要求*/
flag=true;
return ;
}
for(int i=; i<x; i++ ){
if(root[i]!=i) continue;/*找到根结点*/
bool tag=true;
/*判断x是否可以加入根结点集合*/
for( int j=; j<x; j++ ){
if(root[j]==i&&mapp[j][x]==){
tag=false;
break;
}
}
/*如果x可以加入的话*/
if(tag){
root[x]=i;/*将x加入根节点集合*/
DFS(x+,y);//Case one:人数加1,皮球数不变
}
}
root[x]=x;/*Case two:人数加1,皮球数加1*/
DFS(x+,y+);
} int main(){
while(~scanf("%d%d",&n,&m)){
memset(mapp,,sizeof(mapp));
int k,x;
flag=false;
for(int i=; i<n; i++ ){
root[i]=i;
scanf("%d",&k);
while(k--){
scanf("%d",&x);
mapp[i][x]=;/*将无冲突的点标记为1*/
}
}
DFS(,);
if(m>=n||flag) cout<<"YES"<<endl;
else cout<<"NO"<<endl;
} return ;
}
唉,可爱的小朋友---(DFS)的更多相关文章
- HDU 2208 唉,可爱的小朋友(DFS)
唉,可爱的小朋友 Time Limit: 10000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total S ...
- hdu2208之搜索
唉,可爱的小朋友 Time Limit: 10000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- 【BZOJ-1926】粟粟的书架 二分 + 前缀和 + 主席树
1926: [Sdoi2010]粟粟的书架 Time Limit: 30 Sec Memory Limit: 552 MBSubmit: 616 Solved: 238[Submit][Statu ...
- 【The final】软件工程实践总结
软件工程就这么告一段落了,竟然有那么一丢丢的舍不得-- 一.为拖延找的种种借口 [首先声明]以下纯粹是个人吐槽,仅作记录以便日后自己可以回顾一下往昔罢了,可以直接忽略,跳到第二大点:我的拖延之 ...
- 【BZOJ1926】粟粟的书架(主席树,前缀和)
[BZOJ1926]粟粟的书架(主席树,前缀和) 题面 Description 幸福幼儿园 B29 班的粟粟是一个聪明机灵.乖巧可爱的小朋友,她的爱好是画画和读书,尤其喜欢 Thomas H. Co ...
- [BZOJ1926][SDOI2010]粟粟的书架
BZOJ Luogu Description 幸福幼儿园 B29 班的粟粟是一个聪明机灵.乖巧可爱的小朋友,她的爱好是画画和读书,尤其喜欢 Thomas H. Cormen 的文章.粟粟家中有一个 R ...
- bzoj1926[Sdoi2010]粟粟的书架 二分 主席树
1926: [Sdoi2010]粟粟的书架 Time Limit: 30 Sec Memory Limit: 552 MBSubmit: 1064 Solved: 421[Submit][Stat ...
- bzoj 1926: [Sdoi2010]粟粟的书架 (主席树+二分)
链接:https://www.lydsy.com/JudgeOnline/problem.php?id=1926 题面; 1926: [Sdoi2010]粟粟的书架 Time Limit: 30 Se ...
- BZOJ1926[Sdoi2010]粟粟的书架——二分答案+主席树
题目描述 幸福幼儿园 B29 班的粟粟是一个聪明机灵.乖巧可爱的小朋友,她的爱好是画画和读书,尤其喜欢 Thomas H. Co rmen 的文章.粟粟家中有一个 R行C 列的巨型书架,书架的每一个位 ...
随机推荐
- 【重要】将项目发布到Maven中央库
http://www.ruanyifeng.com/blog/2013/07/gpg.html
- 【Zuul】Zuul过滤器参考资料
#https://blog.csdn.net/chenqipc/article/details/53322830#https://github.com/spring-cloud/spring-clou ...
- Centos7中离线安装DockerCE最新版
一.简述 离线在Centos7中部署DockerCE. 二.步骤 (1)在有外网的计算A上执行: 1.配置安装源存放路径 mkdir -p /root/docker-ce-local &&am ...
- ionic使用iframe时无法显示网页或报错
ionic使用iframe时无法显示网页或报错 Uncaught DOMException: Blocked a frame with origin 在config.xml中添加 <access ...
- 关于bazel使用笔记
当我们在build一个文件时,需要另外的放置cache时,我们需要: bazel --output_user_root=/path/to/directory build //foo:bar
- 17.翻译系列:将Fluent API的配置迁移到单独的类中【EF 6 Code-First系列】
原文链接:https://www.entityframeworktutorial.net/code-first/move-configurations-to-seperate-class-in-cod ...
- 【20171123】【GITC精华演讲】贝业新兄弟李济宏:如何做到企业信息化建设的加减乘除
导读 11月23日智慧物流论坛上,贝业新兄弟李济宏分享了<如何做到企业信息化建设的加减乘除>演讲,介绍了如何更好的构建企业信息化系统. 30秒get演讲干货 为什么用户总说系统难用?为什么 ...
- vim资源
1.http://vimcasts.org vim技巧,还有一个高达120美元的课程 目前,正在看http://vimcasts.org/blog/2013/02/habit-breaking-hab ...
- window10下TensorFlow-gpu环境搭建
安装python 下载python3.5.4 https://www.python.org/downloads/release/python-354/ 选择Windows x86-64 executa ...
- sqlyog一些快捷键
http://zhidao.baidu.com/link?url=q5GI6myyUENGkDKfGsz-4P01kbdkJBeSgPFvV3HeNjTTvh9QhTXYx5W0xdcS1P7qxmA ...