题目大意:共有n个人,m对人为已知的朋友关系,而且这种关系具有传递性,也就是A与B,B与C是朋友,可以确定A与C是朋友,求一个人数最多的朋友团体。

bfs就可以了,遇到未访问的结点,加入队列并且朋人数增加,bfs一开始只访问未访问的结点,并作为一个团体的开始。、

代码:

 #include <iostream>
#include <cstdio>
#include <climits>
#include <cstring>
#include <cstdlib>
#include <cmath>
#include <vector>
#include <queue>
#include <algorithm>
#define esp 1e-6
#define pb push_back
#define in freopen("in.txt", "r", stdin);
#define out freopen("out.txt", "w", stdout);
#define print(a) printf("%d\n",(a));
#define bug puts("********))))))");
#define Rep(i, c) for(__typeof(c.end()) i = c.begin(); i != c.end(); i++)
#define inf LLONG_MAX
#define INF 0x0f0f0f0f0f0f
using namespace std;
typedef long long LL;
typedef vector<int> VI;
typedef vector<int>:: iterator IT;
#define N 30010
#define M 501000
VI g[N], ss;
int vis[N], ans, temp;
void init(void)
{
ans = ;
memset(vis, , sizeof(vis));
}
void bfs(int u)
{
temp = ;
vis[u] = ;
queue<int> q;
q.push(u);
while(!q.empty())
{
int i;
i = q.front();
q.pop();
Rep(k, g[i])
{
if(!vis[*k])
vis[*k] = ,temp++, q.push(*k);
} }
}
int main(void)
{
int T;
for(int t = scanf("%d", &T); t <= T ; t++)
{
for(int i = ; i < N; i++)
g[i].clear();
ss.clear();
init();
int n, m;
scanf("%d%d", &n, &m);
while(m--)
{
int u, v;
scanf("%d%d", &u, &v);
g[u].pb(v);
g[v].pb(u);
ss.pb(u),ss.pb(v);
}
Rep(i, ss)
{
temp = ;
if(!vis[*i])
bfs(*i);
ans = max(temp, ans);
}
printf("%d\n", ans);
}
return ;
}

最新文章

  1. java的异常总结
  2. python之数据库操作
  3. Python基本语法
  4. 第三方Girdview中文件下载的方法,以及js显示图片
  5. const的位置与区别
  6. InnoDB源码分析--缓冲池(三)
  7. 安装sqlserver2012时出现的丧心病狂的错误
  8. linux下用Apache一个IP多个网站多域名配置方法
  9. matlab 中max函数用法
  10. Flume使用说明
  11. [CQOI2007]余数求和
  12. LR回放https协议脚本失败: 错误 -27778: 在尝试与主机“www.baidu.com”connect 时发生 SSL 协议错误
  13. C# 不安装Oracle客户端情况下,如何连接到Oracle数据库
  14. 使用正则表达式进行某网页中的email邮箱抽取
  15. MybatisMapper 映射框架(增删改查 原始模式)
  16. vue router.push(),router.replace(),router.go()
  17. React Native(十)——TextInput一点小结
  18. TeeChart的坐标轴
  19. MVC view操作(Razor语法)
  20. php多站点配置以及Forbidden You don&#39;t have permission to access / on this server问题解决

热门文章

  1. FontAwesome 奥森图标的学习
  2. Activti跳过中间节点的helloworld实例程序
  3. 20160522--20160526----mybatis入门基础
  4. Opencv——灰度直方图
  5. NPOI操作EXCEL 类代码
  6. linux字符设备驱动学习笔记(一):简单的字符设备驱动
  7. ios错误修改了系统头文件
  8. C# ACM poj1007
  9. 在linux CentOS6上安装web环境
  10. Yii 关于 find findAll 查找出制定的字段的方法