//Accepted    248 KB    125 ms
 //欧拉回路
 //以26个字母为定点,一个单词为从首字母到末尾字母的一条边
 //下面就是有向图判断欧拉回路
 //连通+节点入度和==出度和 或者 存在一对节点一个入度比出度大1,一个小1
 #include <cstdio>
 #include <cstring>
 #include <iostream>
 #include <queue>
 using namespace std;
 ;
 int a[imax_n][imax_n];
 bool used[imax_n];
 bool vis[imax_n];
 int cnt_in[imax_n],cnt_out[imax_n];
 int n;
 ];
 queue<int >q;
 void bfs(int s)
 {
     while (!q.empty()) q.pop();
     //if (used[s]==0) return 0;
     q.push(s);
     vis[s]=;
     while (!q.empty())
     {
         int x=q.front();
         q.pop();
         ;i<imax_n;i++)
         {
              && !vis[i] && a[x][i])
             {
                 vis[i]=;
                 q.push(i);
             }
         }
     }
 }
 bool judge()
 {
     int flag;
     ;i<=;i++)
     {
         memset(vis,,sizeof(vis));
         bfs(i);
         flag=;
         ;j<=;j++)
          && !vis[j]) flag=;
         ) ;
     }
     ;
 }
 bool slove()
 {
     int p,ne;
     p=ne=;
     ;i<=;i++)
     {
         int t=cnt_in[i]-cnt_out[i];
         ) continue;
         )
         {
             p++;
             ) ;
             continue;
         }
         )
         {
             ne++;
             ) ;
             continue;
         }
         ;
     }
      && ne== || p== && ne==)) ;
     ;
 }
 int main()
 {
     int T;
     scanf("%d",&T);
     while (T--)
     {
         scanf("%d",&n);
         int x,y;
         memset(a,,sizeof(a));
         memset(used,,sizeof(used));
         memset(cnt_in,,sizeof(cnt_in));
         memset(cnt_out,,sizeof(cnt_out));
         ;i<n;i++)
         {
             scanf("%s",s);
             int l=strlen(s);
             x=s[]-;
             y=s[l-]-;
             used[s[]-]=true;
             used[s[l-]-]=true;
             a[x][y]=;
             cnt_out[x]++;
             cnt_in[y]++;
         }
          && slove()==)
         printf("Ordering is possible.\n");
         else
         printf("The door cannot be opened.\n");
     }
     ;
 }

hdu1116 欧拉回路的更多相关文章

  1. hdu-1116(欧拉回路+并查集)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1116 思路:将字符串的头元素和尾元素视为图的x,y节点,然后合并x,y. 如果这个图不连通,则门不能打 ...

  2. ACM/ICPC 之 混合图的欧拉回路判定-网络流(POJ1637)

    //网络流判定混合图欧拉回路 //通过网络流使得各点的出入度相同则possible,否则impossible //残留网络的权值为可改变方向的次数,即n个双向边则有n次 //Time:157Ms Me ...

  3. [poj2337]求字典序最小欧拉回路

    注意:找出一条欧拉回路,与判定这个图能不能一笔联通...是不同的概念 c++奇怪的编译规则...生不如死啊... string怎么用啊...cincout来救? 可以直接.length()我也是长见识 ...

  4. ACM: FZU 2112 Tickets - 欧拉回路 - 并查集

     FZU 2112 Tickets Time Limit:3000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u P ...

  5. UVA 10054 the necklace 欧拉回路

    有n个珠子,每颗珠子有左右两边两种颜色,颜色有1~50种,问你能不能把这些珠子按照相接的地方颜色相同串成一个环. 可以认为有50个点,用n条边它们相连,问你能不能找出包含所有边的欧拉回路 首先判断是否 ...

  6. POJ 1637 混合图的欧拉回路判定

    题意:一张混合图,判断是否存在欧拉回路. 分析参考: 混合图(既有有向边又有无向边的图)中欧拉环.欧拉路径的判定需要借助网络流! (1)欧拉环的判定:一开始当然是判断原图的基图是否连通,若不连通则一定 ...

  7. codeforces 723E (欧拉回路)

    Problem One-Way Reform 题目大意 给一张n个点,m条边的无向图,要求给每条边定一个方向,使得最多的点入度等于出度,要求输出方案. 解题分析 最多点的数量就是入度为偶数的点. 将入 ...

  8. UVa 12118 检查员的难题(dfs+欧拉回路)

    https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...

  9. UVA 10054 (欧拉回路) The Necklace

    题目:这里 题意:有一种由彩色珠子连接而成的项链,每个珠子两半由不同颜色(由1到50的数字表示颜色)组成,相邻的两个珠子在接触的地方颜色相同,现在有一些零碎的珠子,确认它是否能 复原成完整的项链. 把 ...

随机推荐

  1. graph-tool 练习

    如何使用graph-tool模块,如何导入?如何使用graph,使用其算法? 如何使用Boost Graph库,安装,测试? 1 创建和操纵图 如何创建空图? g = Graph() 如何精准的创建有 ...

  2. MySQL DELETE 表别名问题

  3. NKW

    JavaScript几种原生函数 - 博客频道 - CSDN.NEThttp://blog.csdn.net/h378588270/article/details/12948163 .json_百度搜 ...

  4. swf2pdf转swf时字符集问题【转】

    今天转了一个的pdf是出现字符集问题,并转换的swf为乱码.出现的错误如下. 错误的原因是缺少中文字符集GBK-EUC-H.解决方法使用xpdf增加缺少的字符集.解决步骤如下: (一) 下载相关的xp ...

  5. BT5更新源

    感谢http://blog.csdn.net/seaos/article/details/7064136终于找到更新成功的源了 下面简单介绍步骤吧 gedit /etc/apt/sources.lis ...

  6. 看懂UML图

    看懂UML类图和时序图 这里不会将UML的各种元素都提到,我只想讲讲类图中各个类之间的关系: 能看懂类图中各个类之间的线条.箭头代表什么意思后,也就足够应对 日常的工作和交流: 同时,我们应该能将类图 ...

  7. 超实用的JavaScript代码段 --倒计时效果

    现今团购网.电商网.门户网等,常使用时间记录重要的时刻,如时间显示.倒计时差.限时抢购等,本文分析不同倒计时效果的计算思路及方法,掌握日期对象Date,获取时间的方法,计算时差的方法,实现不同的倒时计 ...

  8. Android WebView的使用

    WebView是View的一个子类,使用它可以在App中嵌入H5页面,可以跟js互相调用. webview有两个方法:setWebChromeClient和setWebClient setWebCli ...

  9. 利用VBoxManage对虚拟机格式vdi、vmdk、vhd进行互转

      虚拟机顾名思义就是虚拟出来的机器(virtual machine),虚拟化技术也是时下IT界最热门的技术,因其能更加有效利用硬件资源,整合IT应用,降低TCO,节能环保等,说白了就是一台硬件上够强 ...

  10. cocopods的使用方法

    虽然网上关于CocoaPods安装教程多不胜数,但是我在安装的过程中还是出现了很多错误,所以大家可以照下来步骤装一下,我相信会很好用. 前言 在iOS项目中使用第三方类库可以说是非常常见的事,但是要正 ...