• Cyclic Components CodeForces


    题意:

      就是找出所有环的个数, 但这个环中的每个点都必须只在一个环中

    解析:

      在找环的过程中 判断度数是否为2就行。。。emm。。。

    #include <bits/stdc++.h>
    using namespace std;
    const int maxn = 1e6 + 10, INF = 0x7fffffff;
    
    int n, m, s, t, flag;
    vector<int> G[maxn];
    int vis[maxn], res;
    void dfs(int u, int fa)
    {
        vis[u] = 1;
        for(int i=0; i<G[u].size(); i++)
        {
            int v = G[u][i];
            if(v == fa) continue;
            if(vis[v])
            {
                s = v;
                if(G[u].size() != 2) flag = 0;  //判断是否在一个简单环中
                return;
            }
            else
            {
                dfs(v, u);
                if(G[u].size() != 2) flag = 0;
                break;
            }
        }
        if(flag == 1 && s == u)
            res++;
    }
    
    int main()
    {
        int u, v;
        res = 0;
        cin >> n >> m;
        for(int i=0; i<m; i++)
        {
            cin >> u >> v;
            G[u].push_back(v);
            G[v].push_back(u);
        }
        for(int i=1; i<=n; i++)
        {
            if(!vis[i])
            {
                s = INF, flag = 1;
                dfs(i, -1);
            }
        }
        cout << res << endl;
    
        return 0;
    }
    自己选择的路,跪着也要走完。朋友们,虽然这个世界日益浮躁起来,只要能够为了当时纯粹的梦想和感动坚持努力下去,不管其它人怎么样,我们也能够保持自己的本色走下去。
  • 相关阅读:
    动画差值
    高达模型
    TCP/IP负载均衡
    FreeImage使用
    Game Programming Pattern
    Apple Instruments
    GLEW OpenGL Access violation when using glGenVertexArrays
    微服务了解
    summary
    事务传播行为
  • 原文地址:https://www.cnblogs.com/WTSRUVF/p/9662321.html
Copyright © 2020-2023  润新知