http://poj.org/problem?id=2513

每个单词为一个节点 并查集判联通 度数为偶数或有两个为奇数 4A 第三次是由于有多余的测试输出没删掉 前两次统计多少个单词 统计错了

View Code

 1 #include <iostream>
 2 #include<cstdio>
 3 #include<string.h>
 4 using namespace std;
 5 char s[500011][11];
 6 int dd,father[500011],r[500011],dk[500011];
 7 struct node
 8 {
 9     int de,da;
10     node *next[27];
11     node()
12     {
13         de = 0;
14         da = 0;
15         memset(next,0,sizeof(next));
16     }
17 };
18 int find(int x)
19 {
20     if(x!=father[x])
21     father[x] = find(father[x]);
22     return father[x];
23 }
24 void ctree(node *t,char *c,int j)
25 {
26     int i,d,k = strlen(c);
27     node *p = t;
28     for(i = 0 ; i < k ; i++)
29     {
30         d = c[i]-'a';
31         if(p->next[d]==NULL)
32         p->next[d] = new node;
33         p = p->next[d];
34     }
35     p->de++;
36     if(p->da==0)
37     {
38         dd++;
39         p->da = dd;
40     }
41     r[j] = p->da;
42     dk[p->da] = p->de;
43 }
44 int main()
45 {
46     int i = 0,j,k,n,m;
47     dd = 0;
48     node *t = new node;
49     for(j = 1; j <= 500010 ; j++)
50     father[j] = j;
51     while(scanf("%s %s",s[i],s[i+1])!=EOF)
52     {
53         /*if(s[i][0]=='#')
54         break;*/
55         ctree(t,s[i],i);
56         ctree(t,s[i+1],i+1);
57         int px = find(r[i]);
58         int py = find(r[i+1]);
59         if(px!=py)
60         father[px] = py;
61         i+=2;
62     }
63     int num = 0;
64     for(j = 1 ;j <= dd ; j++)
65     if(father[j]==j)
66     {
67         num++;
68         if(num>1)
69         break;
70     }
71     if(num>1)
72     printf("Impossible\n");
73     else
74     {
75         num = 0;
76         for(j = 1 ; j <= dd ; j++)
77         {
78             if(dk[j]%2!=0)
79             num++;
80         }
81         if(num==2||num == 0)
82         printf("Possible\n");
83         else
84         printf("Impossible\n");
85     }
86     return 0;
87 }

转载于:https://www.cnblogs.com/shangyu/archive/2012/09/03/2669273.html

poj2513Colored Sticks(无向图判欧拉路、回路+trie树)相关推荐

  1. #1181 : 欧拉路·二(无向图的欧拉路)

    #1181 : 欧拉路·二 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 在上一回中小Hi和小Ho控制着主角收集了分散在各个木桥上的道具,这些道具其实是一块一块骨牌. ...

  2. 【牛客 - 369C】小A与欧拉路(bfs树的直径)

    题干: 链接:https://ac.nowcoder.com/acm/contest/369/C 来源:牛客网 小A给你了一棵树,对于这棵树上的每一条边,你都可以将它复制任意(可以为0)次(即在这条边 ...

  3. POJ2513Colored Sticks(欧拉路加字典树)

    传送门 1 #include <cstdio> 2 #include <cstring> 3 #include <algorithm> 4 using namesp ...

  4. C/C++数据结构——虚虚实实(并查集欧拉路)

    题目描述 震为雷,临危不乱,亨通畅达:巽为风,柔顺伸展,厚载万物. 震卦:洊雷,震,君子以恐惧修省.一口金钟在淤泥,人人拿着当玩石,忽然一日钟悬起,响亮一声天下知. 巽卦:随风,巽,君子以申命行事.一 ...

  5. 欧拉路和欧拉回路知识

    概念 如果图G中的一个路径包括每个边恰好一次,则该路径称为欧拉路径(Euler path). 如果一个回路是欧拉路径,则称为欧拉回路(Euler circuit). [1] 具有欧拉回路的图称为欧拉图 ...

  6. 图论--欧拉路,欧拉回路(小结)

    在题目中在慢慢细说概念 1.HDU - 3018 Ant Trip 题目大意:又N个村庄,M条道路.问须要走几次才干将全部的路遍历 解题思路:这题问的是有关欧拉路的判定 欧拉路就是每条边仅仅能走一次, ...

  7. 小A与欧拉路 (树加边求最小权值欧拉路+树的直径)

    链接:https://ac.nowcoder.com/acm/contest/369/C 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 131072K,其他语言2621 ...

  8. poj2513Colored Sticks(无向图的欧拉回路)

    1 /* 2 题意:将两端涂有颜色的木棒连在一起,并且连接处的颜色相同! 3 思路:将每一个单词看成一个节点,建立节点之间的无向图!判断是否是欧拉回路或者是欧拉路 4 5 并查集判通 + 奇度节点个数 ...

  9. POJ 1300 Door Man G++ 无向图欧拉路判定 背

    #include <iostream> #include <cstdio> #include <string> #include <cstring> u ...

最新文章

  1. 百度PHP高级顾问惠新宸:PHP在百度的发展历程
  2. java的static关键字
  3. ssh远程操作服务器
  4. 删除oracle数据库归档日志,Oracle数据库--删除归档日志
  5. Expected more than 1 value per channel when training, got input size torch.Size
  6. Matlab中断语句
  7. boost::log::sources::severity_logger用法的测试程序
  8. android handler.removeCallbacksAndMessages(null)的使用
  9. java 哈希一致算法_一致哈希算法Java实现
  10. 2-3:配置与环境之定制提示符
  11. WebStorm 常用快捷键大全 - 归纳总结篇
  12. 人工智能ai以算法为基础_智能扬声器和AI将为您的医师带来超强能力
  13. 一次性搞清Java中的类加载问题
  14. 12021.ADS7952采集芯片
  15. android监听键盘的隐藏,Android监听软键盘的显示和隐藏
  16. Nacos注册中心AP架构源码(Distro)上篇
  17. 个人支付免费开通支付宝付款功能(免费签约)支付宝当面付开通集成到网站教程
  18. Nginx服务器的gzip压缩详解
  19. 自定义数据集(Pokemon)实战
  20. 微信收钱的盒子服务器老是断开,好哒微信、支付宝入账异常处理办法

热门文章

  1. OpenGL基础27:网格
  2. bzoj 3119: Book(构造)
  3. bzoj 1046: [HAOI2007]上升序列
  4. ubuntu14.04无法打开新加卷
  5. [python+pip] 使用pip将函数库安装到Python环境或Anaconda环境
  6. quartus打开Simulator Tool生成网表进行功能仿真
  7. 标志位操作指令七条CLC,STC,CLD,STD,CLI,STI,CMC
  8. 第一篇博客 记录自己对spring bean的理解
  9. JDK1.8与spring3.x的不兼容
  10. [转载] python 时间sleep() 的方法