poj2513Colored Sticks(无向图判欧拉路、回路+trie树)
http://poj.org/problem?id=2513
每个单词为一个节点 并查集判联通 度数为偶数或有两个为奇数 4A 第三次是由于有多余的测试输出没删掉 前两次统计多少个单词 统计错了
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树)相关推荐
- #1181 : 欧拉路·二(无向图的欧拉路)
#1181 : 欧拉路·二 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 在上一回中小Hi和小Ho控制着主角收集了分散在各个木桥上的道具,这些道具其实是一块一块骨牌. ...
- 【牛客 - 369C】小A与欧拉路(bfs树的直径)
题干: 链接:https://ac.nowcoder.com/acm/contest/369/C 来源:牛客网 小A给你了一棵树,对于这棵树上的每一条边,你都可以将它复制任意(可以为0)次(即在这条边 ...
- POJ2513Colored Sticks(欧拉路加字典树)
传送门 1 #include <cstdio> 2 #include <cstring> 3 #include <algorithm> 4 using namesp ...
- C/C++数据结构——虚虚实实(并查集欧拉路)
题目描述 震为雷,临危不乱,亨通畅达:巽为风,柔顺伸展,厚载万物. 震卦:洊雷,震,君子以恐惧修省.一口金钟在淤泥,人人拿着当玩石,忽然一日钟悬起,响亮一声天下知. 巽卦:随风,巽,君子以申命行事.一 ...
- 欧拉路和欧拉回路知识
概念 如果图G中的一个路径包括每个边恰好一次,则该路径称为欧拉路径(Euler path). 如果一个回路是欧拉路径,则称为欧拉回路(Euler circuit). [1] 具有欧拉回路的图称为欧拉图 ...
- 图论--欧拉路,欧拉回路(小结)
在题目中在慢慢细说概念 1.HDU - 3018 Ant Trip 题目大意:又N个村庄,M条道路.问须要走几次才干将全部的路遍历 解题思路:这题问的是有关欧拉路的判定 欧拉路就是每条边仅仅能走一次, ...
- 小A与欧拉路 (树加边求最小权值欧拉路+树的直径)
链接:https://ac.nowcoder.com/acm/contest/369/C 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 131072K,其他语言2621 ...
- poj2513Colored Sticks(无向图的欧拉回路)
1 /* 2 题意:将两端涂有颜色的木棒连在一起,并且连接处的颜色相同! 3 思路:将每一个单词看成一个节点,建立节点之间的无向图!判断是否是欧拉回路或者是欧拉路 4 5 并查集判通 + 奇度节点个数 ...
- POJ 1300 Door Man G++ 无向图欧拉路判定 背
#include <iostream> #include <cstdio> #include <string> #include <cstring> u ...
最新文章
- 百度PHP高级顾问惠新宸:PHP在百度的发展历程
- java的static关键字
- ssh远程操作服务器
- 删除oracle数据库归档日志,Oracle数据库--删除归档日志
- Expected more than 1 value per channel when training, got input size torch.Size
- Matlab中断语句
- boost::log::sources::severity_logger用法的测试程序
- android handler.removeCallbacksAndMessages(null)的使用
- java 哈希一致算法_一致哈希算法Java实现
- 2-3:配置与环境之定制提示符
- WebStorm 常用快捷键大全 - 归纳总结篇
- 人工智能ai以算法为基础_智能扬声器和AI将为您的医师带来超强能力
- 一次性搞清Java中的类加载问题
- 12021.ADS7952采集芯片
- android监听键盘的隐藏,Android监听软键盘的显示和隐藏
- Nacos注册中心AP架构源码(Distro)上篇
- 个人支付免费开通支付宝付款功能(免费签约)支付宝当面付开通集成到网站教程
- Nginx服务器的gzip压缩详解
- 自定义数据集(Pokemon)实战
- 微信收钱的盒子服务器老是断开,好哒微信、支付宝入账异常处理办法
热门文章
- OpenGL基础27:网格
- bzoj 3119: Book(构造)
- bzoj 1046: [HAOI2007]上升序列
- ubuntu14.04无法打开新加卷
- [python+pip] 使用pip将函数库安装到Python环境或Anaconda环境
- quartus打开Simulator Tool生成网表进行功能仿真
- 标志位操作指令七条CLC,STC,CLD,STD,CLI,STI,CMC
- 第一篇博客 记录自己对spring bean的理解
- JDK1.8与spring3.x的不兼容
- [转载] python 时间sleep() 的方法