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

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

      1 #include <cstdio>
      2 #include <cstring>
      3 #include <algorithm>
      4 #define maxn 50000
      5 using namespace std;
      6 
      7 int in[maxn*4],f[maxn*4];
      8 bool ha[maxn*4];
      9 int max1;
     10 
     11 struct node
     12 {
     13     int u,v;
     14 }p[maxn*4];
     15 
     16 void inti()
     17 {
     18     for(int i=1; i<=max1; i++)
     19     {
     20         f[i]=i;
     21     }
     22 }
     23 
     24 int find1(int x)
     25 {
     26     if(x==f[x]) return x;
     27     return f[x]=find1(f[x]);
     28 }
     29 
     30 void union1(int a,int b)
     31 {
     32     int fa=find1(a);
     33     int fb=find1(b);
     34     if(fa!=fb)
     35     {
     36         f[fb]=fa;
     37     }
     38 }
     39 
     40 int main()
     41 {
     42     int case1=1;
     43     while(scanf("%d%d",&p[0].u,&p[0].v)!=EOF)
     44     {
     45         if(p[0].u<0||p[0].v<0) break;
     46         if(p[0].u==0&&p[0].v==0)
     47         {
     48             printf("Yes
    ",case1++);
     49             continue;
     50         }
     51         memset(in,0,sizeof(in));
     52         memset(ha,false,sizeof(ha));
     53         max1=0;
     54         max1=max(max1,p[0].u);
     55         max1=max(max1,p[0].v);
     56         ha[p[0].u]=ha[p[0].v]=true;
     57         in[p[0].v]++;
     58         int m=1;
     59         while(scanf("%d%d",&p[m].u,&p[m].v))
     60         {
     61             if(p[m].u==0&&p[m].v==0) break;
     62             in[p[m].v]++;
     63             ha[p[m].u]=ha[p[m].v]=true;
     64             max1=max(max1,p[m].u);
     65             max1=max(max1,p[m].v);
     66             m++;
     67         }
     68         bool flag1=false;
     69         int m1=0;
     70         for(int i=1; i<=max1; i++)
     71         {
     72             if(ha[i]&&in[i]>1)
     73             {
     74                 flag1=true;
     75                 break;
     76             }
     77         }
     78         for(int i=1; i<=max1; i++)
     79         {
     80             if(ha[i]&&in[i]==0) m1++;
     81         }
     82         if(flag1||m1!=1)
     83         {
     84              printf("No
    ",case1++);
     85              continue;
     86         }
     87         inti();
     88         for(int i=0; i<m; i++)
     89         {
     90             union1(p[i].u,p[i].v);
     91         }
     92         int ans=0;
     93         for(int i=1; i<=max1; i++)
     94         {
     95             if(ha[i]&&f[i]==i) ans++;
     96         }
     97         if(ans!=1) printf("No
    ",case1++);
     98         else
     99             printf("Yes
    ",case1++);
    100     }
    101     return 0;
    102 }
    View Code
  • 相关阅读:
    JAVA嵌入运行Groovy脚本
    git撤销本地所有未提交的更改
    Java连接S3并上传Redis
    jython笔记
    Elasticsearch 5.2.x 使用 Head 插件连接不上集群
    elasticsearch 5.1 别的机器无法访问9200端口
    elasticsearch,http://ip:9200访问不到的解决办法
    在centos7中安装nodejs(npm )
    java标识符和关键字
    Java平台
  • 原文地址:https://www.cnblogs.com/fanminghui/p/3717662.html
Copyright © 2011-2022 走看看