zoukankan      html  css  js  c++  java
  • UVA 10608 Friends

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

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

    代码:

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <climits>
     4 #include <cstring>
     5 #include <cstdlib>
     6 #include <cmath>
     7 #include <vector>
     8 #include <queue>
     9 #include <algorithm>
    10 #define esp 1e-6
    11 #define pb push_back
    12 #define in  freopen("in.txt", "r", stdin);
    13 #define out freopen("out.txt", "w", stdout);
    14 #define print(a) printf("%d
    ",(a));
    15 #define bug puts("********))))))");
    16 #define Rep(i, c) for(__typeof(c.end()) i = c.begin(); i != c.end(); i++)
    17 #define inf LLONG_MAX
    18 #define INF 0x0f0f0f0f0f0f
    19 using namespace std;
    20 typedef long long  LL;
    21 typedef vector<int> VI;
    22 typedef vector<int>:: iterator IT;
    23 #define N 30010
    24 #define M 501000
    25 VI g[N], ss;
    26 int vis[N], ans, temp;
    27 void init(void)
    28 {
    29     ans = 0;
    30     memset(vis, 0, sizeof(vis));
    31 }
    32 void bfs(int u)
    33 {
    34     temp = 1;
    35     vis[u] = 1;
    36     queue<int> q;
    37     q.push(u);
    38     while(!q.empty())
    39     {
    40         int i;
    41         i = q.front();
    42         q.pop();
    43         Rep(k, g[i])
    44         {
    45             if(!vis[*k])
    46                 vis[*k] = 1,temp++, q.push(*k);
    47         }
    48 
    49     }
    50 }
    51 int main(void)
    52 {
    53     int T;
    54     for(int t = scanf("%d", &T); t <= T ; t++)
    55     {
    56         for(int i = 0; i < N; i++)
    57             g[i].clear();
    58         ss.clear();
    59         init();
    60         int n, m;
    61         scanf("%d%d", &n, &m);
    62         while(m--)
    63         {
    64             int u, v;
    65             scanf("%d%d", &u, &v);
    66             g[u].pb(v);
    67             g[v].pb(u);
    68             ss.pb(u),ss.pb(v);
    69         }
    70         Rep(i, ss)
    71         {
    72             temp = 0;
    73             if(!vis[*i])
    74                 bfs(*i);
    75             ans = max(temp, ans);
    76         }
    77         printf("%d
    ", ans);
    78     }
    79     return 0;
    80 }
  • 相关阅读:
    Web 存储之localStorage
    webpack之font-awesome
    vue-cli快速构建vue项目
    npm与cnpm混用导致的问题
    错误:linker command failed with exit code 1 (use -v to see invocation)
    mac 显示隐藏文件
    iOS 不要使用tag传递TableViewCell的indexPath值
    iOS background location
    github+hexo 搭建个站
    iOS CoreBluetooth
  • 原文地址:https://www.cnblogs.com/rootial/p/3308504.html
Copyright © 2011-2022 走看看