zoukankan      html  css  js  c++  java
  • HDU 1272 小希的迷宫

    一道很简单的并查集

    建模之后就是判断一个无向图有没有环就行了

    注意没有任何数据的时候是要输出一个“yes”,如果输入两个相同的点的时候,应该不判断

    贴一下代码先

    #include <stdio.h>
    #include <string.h>
    
    #define maxn 100100
    int fa[maxn];
    
    int find(int x) { 
        return x==fa[x] ? x : fa[x] = find(fa[x]);
    }
    
    void union_set(int x ,int y) {
        fa[x] = y;
    }
    
    bool fail = false;
    
    int vis[maxn];
    
    void init(){
        fail = false;
        for(int i=0;i<maxn;i++) fa[i] = i;
        memset(vis ,0 , sizeof(vis));
    }
    int a,b,u,v;
    
    int main(){
        while(scanf("%d %d",&a,&b),a+b>=0){
            if(a+b == 0) {
                puts("Yes");
                continue;
            }
            init();
            fail = false;
            if(a!=b){ 
                u = find(a) , v = find(b);
                union_set(u,v);
                vis[a]=1;vis[b]=1;
            }
            while(scanf("%d %d",&a,&b),a+b){
                u = find(a) , v = find(b);
                vis[a]=vis[b]=1;
                if(a==b) continue;
                if(u != v){
                    union_set(u,v);
                }
                else{
                    fail = true;
                }
            }
            int cnt = 0 , mk , st;
            
            for(int i=1;i<maxn;i++){
                if(vis[i] && fa[i] == i){
                    cnt++;
                }
            }
            if(!fail) fail = cnt == 1 ? false : true;
            if(fail) puts("No");
            else puts("Yes");
        }
        return 0;
    }
    /*
    1 1 1 2 3 1 3 3
    0 0
    
    */
    View Code
  • 相关阅读:
    IDEA插件备忘录
    SpringBoot2基础笔记
    EasyCode模板,配合通用mapper,dubbo项目使用
    七牛云存储
    Apache POI
    SSM项目中关于配置的一二三
    SSM整合笔记
    Spring5学习笔记
    ThinkPHP框架,按分类,计算商品价格区间,来完成价格搜索
    PHP常用符号和函数
  • 原文地址:https://www.cnblogs.com/cton/p/3449840.html
Copyright © 2011-2022 走看看