集训队分组

Time Limit: 2 Sec  Memory Limit: 128 MB

Description

中南大学ACM的暑期集训马上就要开始了,这次集训会将全体N名集训队员(编号分别为1, 2, …, N)按集训选拔赛的排名分成两组,前K名队员分入A组,其余队员分入B组。

但现在助理教练CSGrandeur一不小心把集训选拔赛的排名弄丢了,而之前又没将A组和B组的人员确定出来,于是CSGrandeur打算问一下集训人员他们的名次各是怎样的,以此来确定一下A组的队员。

然而集训队员们都视名次如粪土,只是隐约记得某些人排在了自己的后面,最终反馈到CSGrandeur这里的一共有M条信息,每条信息都可以用一个二元组(x, y) (x!=y)表示,含义为第x名队员记得第y名队员的排名比自己的要靠后。

现在CSGrandeur想知道,根据这M条信息,是否可以确定出A组的队员呢?(默认所有集训队员反映的信息都是符合事实的。)

Input

输入包含多组测试数据。

对于每组测试数据,第一行包含三个正整数N (2<=N<=1000)、K (1<=K<=N)、M (1<=M<=10000),含义同上。接下来M行每行有两个正整数x、y (1<=x, y<=N且x!=y),分别描述了M条信息,对于每对x、y,均表示第x名队员记得第y名队员的排名比自己的要靠后。

Output

对于每组测试数据,如果可以确定出A组的队员,输出“YES”(不包括引号),否则输出“NO”(不包括引号)。

Sample Input

3 1 2
1 2
1 3
3 2 2
1 2
1 3

Sample Output

YES
NO

解法:从点x开始广搜,如果从x可以到达的点有v个,说明有v个点在x后面,如果v大于N-K,说明x在前k名中。

#include <cstdio>
#include <cstring>
#include <vector>
#include <queue>
using namespace std;const int MaxN = 1005;
int vis[MaxN];
vector <int> Map[MaxN];//广搜,返回从x出发可以到达多少个点,即有多少个点在它后面
int BFS(int x) {queue <int> q;q.push(x);memset(vis, 0, sizeof(vis));vis[x] = 1;int cnt = 0;while(!q.empty()) {int nx = q.front(); q.pop();for(int i = 0; i < Map[nx].size(); ++i) {int xx = Map[nx][i];if(!vis[xx]) {q.push(xx);vis[xx] = 1;++cnt;}}}return cnt;
}int main() {int N, K, M, x, y;while(~scanf("%d%d%d", &N, &K, &M)) {memset(Map, 0, sizeof(Map));for(int i = 0; i < M; ++i) {scanf("%d%d", &x, &y);Map[x].push_back(y);}int cnt = 0;for(int i = 1; i <= N; ++i) {if(BFS(i) >= N - K) ++cnt; //如果至少有N-K个结点在它之后,说明它就是前K个if(cnt == K) break;}if(cnt == K) puts("YES");else puts("NO");}return 0;
}

CSU 1081集训队分组(搜索)相关推荐

  1. COJ 1081 集训队分组

    http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1081 不是太会写拓扑排序,所以再写一遍. /*Accepted 880 kb 268 ms C++ ...

  2. CSU 1114 平方根大搜索

    CSU 1114 平方根大搜索 Time Limit: 5 Sec Memory Limit: 128 MB Submit: 197 Solved: 109 Description 在二进制中,2的算 ...

  3. CSU OJ 代码搜集(1000-1100)

    CSU OJ 代码搜集(1000-1100) 博客链接 CSU OJ 代码搜集(1100-1200) 博客链接 CSU OJ 代码搜集(1200-1300) 博客链接 CSU OJ 代码搜集(1300 ...

  4. Facebook是如何做搜索的?

    作者 | 一块小蛋糕 来源 | NewBeeNLP 今天要和大家分享的论文是来自Facebook的『Embedding based Retrieval in Facebook Search』. 不得不 ...

  5. SQL匹配多字段进行排序,搜索

    谈到搜索,一般就想起了SQL Server的FullTextSearch(全文搜索)功能,它确实强大,但使用起来也要做一些较为繁琐的准备工作,一般小型的项目或者对搜索要求(包括性能需求)不是很高的情况 ...

  6. 【NLP】全方位解读 | Facebook的搜索是怎么做的?

    NewBeeNLP原创出品 公众号专栏作者@一块小蛋糕 知乎 | 推荐系统小筑 今天要和大家分享的论文是来自Facebook的『Embedding based Retrieval in Faceboo ...

  7. HarmonyOS之数据管理·融合搜索的应用

    一.简介 ① 基本概念 HarmonyOS 融合搜索为开发者提供搜索引擎级的全文搜索能力,可支持应用内搜索和系统全局搜索,为用户提供更加准确.高效的搜索体验. 全文索引:记录字或词的位置和次数等属性, ...

  8. Windows下的搜索神器 —— everything

    介绍一款Windows下的神奇 -- everything,软件很小巧,但是搜索速度非常快,比Windows自带的搜索功能更强大.更快.掌握它的基本用法,在查找文件时能提升很高的效率 1.下载 2.基 ...

  9. 微软搜索战略全盘革新 计划数月内发布“Kiev”

    据国外媒体报道,微软一直声称,这几年间自己的搜索服务已有极大改善,不幸的是,用户很难体验出来.据一位微软高管表示,正是这一原因促使微软决定上马Kiev计划. 什么是Kiev? Kiev是微软搜索全盘革 ...

最新文章

  1. 简单android音乐播放器课程设计,android音乐播放器课程设计报告.doc
  2. PPP、MP 和 SLIP 配置(上)
  3. Intel Realsense USB设备的插入检测机制
  4. supervisor安装部署和使用实例
  5. sql中的并、交、差
  6. 11 - java构造方法
  7. xmodmap使用指南
  8. stage3图书管理系统服务器部署
  9. [spring]maven项目中获取resources资源目录路径
  10. PHP判断浏览器类型和语言
  11. Scaleform在游戏制作中的使用
  12. win10的js文件-bat脚本-开启移动热点
  13. 【2019】Power BI 9月产品功能更新解读
  14. FishC笔记—01 讲:我和 Python 第一次亲密接触
  15. 筛选中很容易粘贴到被隐藏部分_Excel中复制(或粘贴)含有隐藏单元格的区域时如何只对可见单元格进行操作...
  16. Word365英文版,文字垂直居中
  17. 0002深度学习初体验-基于Tensorflow and Keras 实现卷积神经网络(CNN-AlexNET)实现CIFAR图像训练
  18. “Failed to load response data“ django@xframe_options_exempt 网站不许 Firefox 显示被嵌入的网页
  19. AutoCAD安装失败怎样卸载重新安装AutoCAD,解决AutoCAD安装失败的方法总结【转载】
  20. 网易免费邮箱的smtp 为何密码错误

热门文章

  1. CrazyDiskInfo硬盘检测工具 安装记录
  2. MySQL探索(一):B-Tree索引
  3. http头部content-type与数据格式
  4. Java 多线程之单例设计模式
  5. 我和学员那些事儿——涅槃重生的背后
  6. CentOS --kickstart服务器搭建(一)
  7. BI推荐8款优秀的app
  8. Spread for Windows Forms快速入门(2)---设置Spread表单
  9. 我和“限速”之间的纠缠(一)
  10. DCF模型里面的括号计算方法