zoukankan      html  css  js  c++  java
  • HDU 1272 小希迷宫(并检查集合)

    意甲冠军:被判处无向图无环和连接无处不在

    思考:并检查集合,trap 您可能有一个直接输入0 0

    并且....合并的时候按某一个方向会爆栈,爆了好几次...下次考虑一下直接递归找祖先吧

    #include<cstdio>
    #include<iostream>
    #include<algorithm>
    #include<cstring>
    using namespace std;
    const int N =1e5+1e2;
    int fa[N];
    int getf(int x)
    {
        return x==fa[x]?

    x:fa[x]=getf(fa[x]); } int Merge(int x,int y) { int t1=getf(x); int t2=getf(y); if(t1==t2) return false; fa[t2]=t1; return true; } bool vis[N]; bool flag; int cnt; void ini() { for(int i=1;i<100005;i++) fa[i]=i; flag=true; cnt=0; memset(vis,0,sizeof(vis)); } int main() { int u,v; while(scanf("%d%d",&u,&v),~u) { if(!(u||v)) { puts("Yes"); continue; } ini(); vis[u]=vis[v]=true; flag=Merge(u,v); while(scanf("%d%d",&u,&v),(u||v)) { vis[u]=vis[v]=true; if(!flag) continue; flag=Merge(u,v); } if(flag) for(int i=1;i<100005;i++) if(vis[i]&&fa[i]==i) cnt++; if(cnt>1) flag=0; if(flag) puts("Yes"); else puts("No"); } return 0; }



    版权声明:本文博主原创文章。博客,未经同意不得转载。

  • 相关阅读:
    JavaScript类型转换
    JavaScript中的 typeof,null,和undefined
    JavaScript循环
    JavaScript条件语句
    JavaScript运算符
    JavaScript字符串
    JavaScript事件
    JavaScript对象,函数,作用域
    JavaScript基础
    数值数据的特征预处理
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/4887923.html
Copyright © 2011-2022 走看看