博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2822 爱在心中
阅读量:6556 次
发布时间:2019-06-24

本文共 1368 字,大约阅读时间需要 4 分钟。

2822 爱在心中

 

 时间限制: 1 s
 空间限制: 128000 KB
 题目等级 : 钻石 Diamond
 
 
 
题目描述 
Description

“每个人都拥有一个梦,即使彼此不相同,能够与你分享,无论失败成功都会感动。爱因为在心中,平凡而不平庸,世界就像迷宫,却又让我们此刻相逢Our Home。”

在爱的国度里有N个人,在他们的心中都有着一个爱的名单,上面记载着他所爱的人(不会出现自爱的情况)。爱是具有传递性的,即如果A爱B,B爱C,则A也爱C。

如果有这样一部分人,他们彼此都相爱,则他们就超越了一切的限制,用集体的爱化身成为一个爱心天使。
现在,我们想知道在这个爱的国度里会出现多少爱心天使。而且,如果某个爱心天使被其他所有人或爱心天使所爱则请输出这个爱心天使是由哪些人构成的,否则输出-1。

输入描述 
Input Description

第1行,两个数N、M,代表爱的国度里有N个人,爱的关系有M条。

第2到第M+1行,每行两个数A、B,代表A爱B。

输出描述 
Output Description

第1行,一个数,代表爱的国度里有多少爱心天使。

第2行,如果某个爱心天使被其他所有人和爱心天使所爱则请输出这个爱心天使是由哪些人构成的(从小到大排序),否则输出-1。

样例输入 
Sample Input

样例输入1:

6 7

1 2
2 3
3 2
4 2
4 5
5 6
6 4

样例输入2:

3 3

1 2
2 1
2 3

样例输出 
Sample Output

样例输出1:

2

2 3

样例输出2:

1

-1

数据范围及提示 
Data Size & Hint

各个测试点1s

分类标签 Tags 

 
   
 
解析:
题目是要我们找图中有几个环(强连通分量),输出个数;
如果其中一个环被其他环和单点指向,输出这个环的成员;否则输出-1
 
那么,用塔软件找一下环,用floyed维护一下关系,就好了
 
AC代码:
#include
#include
#include
#include
#include
#include
using namespace std;#define N 1010int pd,sd,sum,low[N],dfn[N],mark[N],id[N];bool lj[N][N];vector
grap[N];vector
ans[N];stack
s;void tarjan(int v){ low[v]=dfn[v]=++pd; s.push(v); mark[v]=1; for(int i=0;i
=2) sum++; printf("%d\n",sum); for(int i=1;i<=n;i++){ for(int j=0;j
=2){ print(i); return 0; } } puts("-1"); return 0;}

 

转载于:https://www.cnblogs.com/shenben/p/5742037.html

你可能感兴趣的文章
浏览器的工作原理
查看>>
JDK1.8 HashMap源码分析
查看>>
Android5.x Notification应用解析
查看>>
Big data大数据
查看>>
COGS 2507. 零食店
查看>>
Airport Express UVA - 11374
查看>>
UVALive - 3029 City Game
查看>>
握固方法
查看>>
接口性能测试报告样本-含分析内容2
查看>>
http://www.uniternet.com/case/
查看>>
扩展方法
查看>>
[学习笔记]动态树Link-Cut-Tree
查看>>
kafka Quickstart
查看>>
linux awk 文本分析实例 [视频]
查看>>
设置跨交换机VLAN
查看>>
01HTML
查看>>
多线程
查看>>
ubuntu 下安装memcache 以及php扩展
查看>>
Mysql Java type mapping
查看>>
Java通过Executors提供四种线程池
查看>>