集训队分组

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

Hint

思路:做一个邻接表搜索所有的能确定自己能在多少人前方,如果后点大于等于n-m,那么就认为在前m名。

#include<bits/stdc++.h>
using namespace std;
const int maxn = 1e5+;
int first[maxn],next[maxn],edge[maxn][];
int vis[maxn];
int add(int a,int b,int c)
{
next[c]=first[a];//next用于指向a上一次出现时的信息;
first[a]=c;//标记目前a出现在c条信息
edge[c][]=a;
edge[c][]=b;
}
queue<int> q;
int bfs(int i)
{ memset(vis,,sizeof(vis));
while(!q.empty())
q.pop();
q.push(i);
int cnt=;
vis[i]=;
while(!q.empty())
{
int t = q.front();
q.pop();
for(int j=first[t];j!=-;j=next[j])
{
if(vis[edge[j][]]==)
{
vis[edge[j][]]=;
q.push(edge[j][]);
cnt++;
}
}
}
return cnt;
}
int main()
{
int n,m,k;
int xx,yy;
while(scanf("%d %d %d",&n,&m,&k)!=EOF)
{
memset(first,-,sizeof(first));
memset(next,,sizeof(next));
int cnt1=;
for(int i=;i<k;i++)
{
scanf("%d %d",&xx,&yy);
add(xx,yy,i);
}
for(int i=;i<=n;i++)
{
if(bfs(i)>=(n-m))
{
cnt1++;
}
}
if(cnt1>=m)
printf("YES\n");
else
printf("NO\n");
}
}

CSU1081有向图BFS的更多相关文章

  1. German Collegiate Programming Contest 2018​ C. Coolest Ski Route

    John loves winter. Every skiing season he goes heli-skiing with his friends. To do so, they rent a h ...

  2. 图论-BFS解无权有向图最短路径距离

    概述 本篇博客主要内容: 对广度优先搜索算法(Breadth-First-Search)进行介绍: 介绍用邻接表的存储结构实现一个图(附C++实现源代码): 介绍用BFS算法求解无权有向图(附C++实 ...

  3. 有向图的邻接矩阵表示法(创建,DFS,BFS)

    package shiyan; import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; publi ...

  4. Codeforces Round #625 (Div. 2, based on Technocup 2020 Final Round) D. Navigation System(有向图,BFS,最短路)

    题意: n 点 m 边有向图,给出行走路径,求行走途中到路径终点最短路变化次数的最小值和最大值 . 思路 : 逆向广搜,正向模拟. #include <bits/stdc++.h> usi ...

  5. BFS/DFS算法介绍与实现(转)

    广度优先搜索(Breadth-First-Search)和深度优先搜索(Deep-First-Search)是搜索策略中最经常用到的两种方法,特别常用于图的搜索.其中有很多的算法都用到了这两种思想,比 ...

  6. bfs判断连通图(无向)

    在图论中,连通图基于连通的概念.在一个无向图 G 中,若从顶点vi到顶点vj有路径相连(当然从vj到vi也一定有路径),则称vi和vj是连通的.如果 G 是有向图,那么连接vi和vj的路径中所有的边都 ...

  7. Kosaraju 算法检测有向图的强连通性

    给定一个有向图 G = (V, E) ,对于任意一对顶点 u 和 v,有 u --> v 和 v --> u,亦即,顶点 u 和 v 是互相可达的,则说明该图 G 是强连通的(Strong ...

  8. NOIP2003神经网络[BFS]

    题目背景 人工神经网络(Artificial Neural Network)是一种新兴的具有自我学习能力的计算系统,在模式识别.函数逼近及贷款风险评估等诸多领域有广泛的应用.对神经网络的研究一直是当今 ...

  9. [CareerCup] 4.2 Route between Two Nodes in Directed Graph 有向图中两点的路径

    4.2 Given a directed graph, design an algorithm to find out whether there is a route between two nod ...

随机推荐

  1. css不同情况下的各种居中方法

    div水平居中 1.行内元素 .parent{ text-align: center } 2.块级元素 .son{ margin: 0 auto ; } 3.flex布局 .parent{ displ ...

  2. centos7 远程桌面连接到xfce桌面

    1 安装xfce $ sudo yum install -y epel-release $ sudo yum groupinstall -y "Xfce" $ sudo reboo ...

  3. Thiago2(TPO AI.ROSTO):集成式AI换脸软件(Autodesk Flame)

    如标题一样,Thiago2 是一款集成式AI换脸软件(TPO AI.ROSTO),需要与Autodesk Flame结合使用,从demo来看完成度还是很高的,算是一种完全GUI版的DeepFaceLa ...

  4. CentOS 7安装MySQL 8——萌新超详细教程

          1.配置MySQL 8.0的安装源:   sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-1.n ...

  5. SpringMVC @PathVariable注解

    下面用代码来演示@PathVariable传参方式 @RequestMapping("/user/{id}") public String test(@PathVariable(& ...

  6. 动态添加+动态绑定(vue数据驱动思路)

    先上案例 首先来分析一下,勾选科目的时候,下面同时增加科目的满分值设置. 以前写jquery的思路:当勾选的时候创建dom节点,然后把dom节点append到父节点上,项目采用前后分离的方式进行交互, ...

  7. webpack4基础配置

    网页中常见的静态资源: js: .js .jsx .coffee .ts(TypeScript 类 C# 语言) css: .css .less .sass .scss Images: .jpg .p ...

  8. Python---CSS选择器权重以及补充

    一. 嵌入式CSS CSS引入方式优先级 二.

  9. 【leetcode】1105. Filling Bookcase Shelves

    题目如下: We have a sequence of books: the i-th book has thickness books[i][0] and height books[i][1]. W ...

  10. 用java imageio调整图片DPI,例如从96调整为300

    因项目需求把图片的DPI值提升到300,否则OCR识别产生错乱:直接上源码:1.图片处理接口: package util.image.dpi; import java.awt.image.Buffer ...