博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
cogs——1298. 通讯问题
阅读量:5758 次
发布时间:2019-06-18

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

1298. 通讯问题

★★   输入文件:jdltt.in   输出文件:jdltt.out   简单对比

时间限制:1 s   内存限制:128 MB

【题目描述】

一个篮球队有n个篮球队员,每个队员都有联系方式(如电话、电子邮件等)。但并不是每个队员的联系方式都公开,每个队员的联系方式只有一部分队员知道。问队员可以分成多少个小组,小组成员之间可以相互通知(包括一个队员一个组,表示自己通知自己)。

【输入格式】

 

输入文件有若干行

第一行,一个整数n,表示共有n个队员(2<=n<=100)

下面有若干行,每行2个数a、b,a、b是队员编号,表示a知道b的通讯方式。

 

【输出格式】

 

输出文件有若干行

第一行,1个整数m,表示可以分m个小组,下面有m行,每行有若干个整数,表示该小组成员编号,输出顺序按编号由小到大。

 

【样例输入】

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

【样例输出】

 

 

8

1 2 3

4 6

5

7 8

9

10

11

12

 

裸题、、、、、(不要忘了排序、、、)  

 

#include
#include
#include
#include
#include
#define N 1000using namespace std;bool flag,vis[N],vist[N];int n,x,y,tot,ans,top,tim,sum;int low[N],dfn[N],head[N],stack[N],belong[N];struct Edge{ int from,to,next;}edge[N];int read(){ int x=0,f=1; char ch=getchar(); while(ch<'0'||ch>'9'){
if(ch=='-')f=-1; ch=getchar();} while(ch>='0'&&ch<='9'){x=x*10+ch-'0'; ch=getchar();} return x*f;}int add(int x,int y){ tot++; edge[tot].to=y; edge[tot].next=head[x]; head[x]=tot;}int tarjan(int now){ dfn[now]=low[now]=++tim; stack[++top]=now;vis[now]=true; for(int i=head[now];i;i=edge[i].next) { int t=edge[i].to; if(vis[t]) low[now]=min(low[now],dfn[t]); else if(!dfn[t]) tarjan(t),low[now]=min(low[now],low[t]); } if(low[now]==dfn[now]) { sum++;belong[now]=sum; for(;stack[top]!=now;top--) { int x=stack[top]; belong[x]=sum;vis[x]=false; } vis[now]=false;top--; }}int main(){ freopen("jdltt.in","r",stdin); freopen("jdltt.out","w",stdout); n=read(); while(scanf("%d%d",&x,&y)==2) add(x,y); for(int i=1;i<=n;i++) if(!dfn[i]) tarjan(i); printf("%d\n",sum); for(int i=1;i<=n;i++) { flag=false; if(!vist[i]) for(int j=1;j<=n;j++) if(belong[j]==belong[i]) vist[j]=true,printf("%d ",j),flag=true; if(flag) printf("\n"); } return 0;}

 

转载于:https://www.cnblogs.com/z360/p/7398101.html

你可能感兴趣的文章
磨刀不误砍柴 - 配置适合工作学习的桌面环境
查看>>
Java笔记-反射机制(一)
查看>>
redux v3.7.2源码解读与学习之 applyMiddleware
查看>>
【React】为什么我不再使用setState?
查看>>
Git原理与高级使用(3)
查看>>
从JDK源码看Writer
查看>>
Express 结合 Webpack 实现HMRwi
查看>>
基于protobuf的RPC实现
查看>>
坚信每个人都能成为品牌
查看>>
JAVA的对象复制
查看>>
我的友情链接
查看>>
HAProxy负载均衡原理及企业级实例部署haproxy集群
查看>>
开源中国动弹客户端实践(三)
查看>>
Win 8创造颠覆性体验:预览版关键更新
查看>>
vim在多文件中复制粘贴内容
查看>>
Android ContentObserver
查看>>
文章“关于架构优化和设计,架构师必须知道的事情”
查看>>
疯狂java学习笔记1002---非静态内部类
查看>>
ISA2006实战系列之一:实战ISA三种客户端部署方案(上)
查看>>
TCP服务器
查看>>