zoukankan      html  css  js  c++  java
  • hdu 1272 小希的迷宫 (并查集)

    http://acm.hdu.edu.cn/showproblem.php?pid=1272

    裸的并查集,注意两个地方: 

    1. 最后所有的点要在同一个集合中

    2. 输入只有0 0时需要特殊处理

    code:

    #include<cstdio>
    #include<cstring>
    int p[100001] ;
    bool vis[100001] ;
    void make_set(){
        for(int i=1; i<=100001; i++)
            p[i] = i ;
    }
    int find_set(int x){
        if(p[x]!=x)
            p[x] = find_set(p[x]) ;
        return p[x] ;
    }
    void union_set(int x, int y){
        x = find_set(x) ;
        y = find_set(y) ;
        p[x] = y ;
    }
    int main(){
        int x, y, flag, node, edge ;
        while(~scanf("%d%d", &x, &y)&&x+y+2){
            flag = 0 ;
            node = 2, edge = 1 ;
            if(!(x+y)){
                printf("Yes\n") ;
                continue ;
            }
            memset(vis, falsesizeof(vis)) ;
            vis[x] = true, vis[y] = true ;
            make_set() ;
            union_set(x, y) ;
            while(~scanf("%d%d", &x, &y)&&x+y){
                edge ++ ;
                if(!vis[x]) node ++ ;
                if(!vis[y]) node ++ ;
                vis[x] = vis[y] = true ;
                if(flag||find_set(x)==find_set(y)){
                    flag = 1 ;
                    continue ;
                }
                union_set(x, y) ;
            }
            if(!flag&&(node-edge==1))    printf("Yes\n") ;
            else    printf("No\n") ;
        }
        return 0 ;} 
  • 相关阅读:
    vue苦逼自学之路
    第一次博客作业
    u3d学习资料
    leetcode——Divide Two Integers
    leetcode——Swap Nodes in Pairs
    leetcode——Merge k Sorted Lists
    leetcode——Container With Most Water
    leetcode——Regular Expression Matching
    leetcode——Longest Palindromic Substring
    CC_CALLBACK之间的区别
  • 原文地址:https://www.cnblogs.com/xiaolongchase/p/2435888.html
Copyright © 2011-2022 走看看