zoukankan      html  css  js  c++  java
  • 找圈圈 (BFS简单运用)

    题目位置

    题目大意是给一个无向连通图,找其中有几个标准的圈。

    所谓标准的圈,就是一个圈外不能有其他线段和环。那么其中每个点都只有两条边

    我的方法是用bfs将连通的一组点放入一个队列中,如果这些点都只有两条边,那么这些点形成一个圈;如果其中有一个点的边数!=2,那么这些点没有形成圈。

    #include <iostream>
    #include <stdio.h>
    using namespace std;
    int n,m,head[1000010],zz=0,vis[1000010],edge[1000010],que[1000010];
    struct HAHA{
        int v,next;
    }list[2000010];
    
    void connect(int u,int v)
    {
        zz++;
        list[zz].v=v;
        list[zz].next=head[u];
        head[u]=zz;
        edge[u]++;
    }
    
    int bfs(int start)
    {
        int hz=1,tz=1;
        que[hz]=start;
        vis[start]=1;
        while(hz<=tz)
        {
            int now=que[hz];
            for(int i=head[now];i;i=list[i].next)
            {
                int v=list[i].v;
                if(vis[v]) continue;
                tz++;
                vis[v]=1;
                que[tz]=v;
            }
            hz++;
        }
        for(int i=1;i<=tz;i++)
        {
            if(edge[que[i]]!=2) return 0;
        }
        return 1;
    }
    
    int main()
    {
        scanf("%d%d",&n,&m);
        int d1,d2;
        for(int i=1;i<=m;i++)
        {
            scanf("%d%d",&d1,&d2);
            connect(d1,d2);
            connect(d2,d1);
        }
        int ans=0;
        for(int i=1;i<=n;i++)
        {
            if(!vis[i]) ans+=bfs(i);
        }
        cout<<ans<<endl;
        return 0;
    }
  • 相关阅读:
    求秋名山老司机车速
    JSON详解
    mysql 建立索引的原则
    mysql 建立索引的原则
    jQuery的html(),text()和val()比较
    jQuery的html(),text()和val()比较
    CSS cursor 属性
    CSS cursor 属性
    判断是否为润年
    mysql 查看当前使用的配置文件my.cnf的方法
  • 原文地址:https://www.cnblogs.com/BakaCirno/p/10507448.html
Copyright © 2011-2022 走看看