zoukankan      html  css  js  c++  java
  • PAT T1014 Circles of Friends

    大水题,dfs判连通块的数量,bfs每个点找朋友圈的最大直径~

    #include<bits/stdc++.h>
    using namespace std;
    const int maxn=1014;
    vector<int> g[maxn];
    bool visit[maxn];
    int N;
    int maxdepth=0;
    void dfs (int s) {
        visit[s]=true;
        for (int i=0;i<g[s].size();i++) 
        if (visit[g[s][i]]==false) dfs(g[s][i]);
    }
    int dfsTrave () {
        int block=0;
        for (int i=1;i<=N;i++) 
        if (visit[i]==false) dfs(i),block++;
        return block;
    }
    void bfs (int s) {
        int depth[maxn]={0};
        queue<int> q;
        fill (visit,visit+maxn,false);
        q.push(s);
        visit[s]=true;
        while (!q.empty()) {
            int now=q.front();
            q.pop();
            for (int i=0;i<g[now].size();i++) 
            if (visit[g[now][i]]==false) {
                q.push(g[now][i]);
                depth[g[now][i]]=depth[now]+1;
                visit[g[now][i]]=true;
                maxdepth=max(maxdepth,depth[g[now][i]]);
            }
        }
    }
    int main () {
        scanf ("%d",&N);
        int k,x;
        for (int i=1;i<=N;i++) {
            scanf ("%d",&k);
            for (int j=1;j<=k;j++) {
                scanf ("%d",&x);
                g[i].push_back(x);
                g[x].push_back(i);
            }
        }
        int block=dfsTrave();
        for (int i=1;i<=N;i++) bfs (i);
        printf ("%d %d",block,max(0,maxdepth-1));
        return 0; 
    }
  • 相关阅读:
    【 一次性密码】TOTP
    动态令牌-(OTP,HOTP,TOTP)-基本原理
    动态口令
    Jmeter参数化 CSV Data Set Config界面说明
    Jmeter测试监控 Summary Report界面
    jmeter命令行参数
    jmeter场景设计
    jmeter事务控制器
    软件测试模型
    业务流程测试
  • 原文地址:https://www.cnblogs.com/zhanglichen/p/12302909.html
Copyright © 2011-2022 走看看