zoukankan      html  css  js  c++  java
  • HDU

    题意:就是给出一张无相图,判断有没有回路
    思路:对于无向图判环问题,可以采用dfs染色或则并查集的方式
    如果使用并查集的话,如果存在环即在某次 将某边的两个结点 进行比较,如果发现已经在同一个集合则说明存在环

    完整代码:

    #include<cstdio>
    #include<iostream>
    #include<cstring>
    const int maxn = 1e5+5;
    using namespace std;
    int flag;
    int pre[maxn];
    int vis[maxn];
    int find(int x)
    {
        if(x!=pre[x]) return pre[x] = find(pre[x]);
        else return pre[x];
    }
    void unite(int x,int y)
    {
        int fx=find(x),fy=find(y);
        if(fx!=fy)    pre[fy]=fx;
        else    flag = 0;
    }
    void init(){
        for(int i=0;i<maxn;i++){
            pre[i]=i;vis[i]=0;
            flag=1;
        }
    }
    int main()
    {
        int a,b;
        while(~scanf("%d%d",&a,&b)){
            if(a==-1&&b==-1) break;
            if(a==0&&b==0){
                printf("Yes
    ");
                continue;
            }
            init();
            unite(a,b);
            vis[a]= vis[b] = 1;
            while(scanf("%d%d",&a,&b)&&a&&b){
                unite(a,b);
                vis[a]=1;
                vis[b]=1;
            }
            if(flag==0){
                printf("No
    ");
                continue;
            }
            else{
                int cont=0;
                for(int i=0;i<=maxn;i++){
                    if(vis[i]&&pre[i]==i)
                    cont++;
                }
                if(cont==1){
                    printf("Yes
    ");
                }else{
                    printf("No
    ");
                }
            }
        }
    }
  • 相关阅读:
    .NETCORE微服务架构--网关篇(Ocelot)
    Hangfire实战--添加DashBoard登录权限
    IIS发布-HTTP谓词限制访问
    基于Dapper的泛型Repository
    .Net Framework JWT验证
    .Net Framework swagger 进阶----头部参数
    .Net Framework下安装api swagger
    ErrorSet
    201907总结
    博客美化
  • 原文地址:https://www.cnblogs.com/Tianwell/p/11297444.html
Copyright © 2011-2022 走看看