hdu1116 Play on Words 判断能否构成欧拉回路
来源:互联网 发布:kafka java代码实例 编辑:程序博客网 时间:2024/06/10 00:03
<pre name="code" class="cpp">/*这是道关于欧拉回路的问题, 最前面的字母是起点,最后的字母是终点.有向图,要想能构成欧拉路径,首先必须是联通的.所以用并查集判断是不是一个祖先来判断是否是完全联通的图. 其次要保证,它的出度和入度要全相等或者恰好两个(起点和终点)的时候 出入度差值可以为一.*/#include <stdio.h>#include <stdlib.h>#include <string.h>typedef __int64 LL;#define N 456976int f[30];int find(int a) { return f[a]==-1?a:f[a]=find(f[a]);}void unit(int a,int b){int fa=find(a),fb=find(b);if(fa!=fb){if(fb<fa) f[fa]=fb;else f[fb]=fa;}}int main(){ int n,tt,i;int data[30];//是否 有该点.char a[1010]; int du[30][2];//0入度 1出度scanf("%d",&tt);while(tt--){memset(du,0,sizeof(du));memset(f,-1,sizeof(f));memset(data,0,sizeof(data));scanf("%d",&n);for(i=0;i<n;i++){scanf("%s",a);du[a[0]-'a'][0]++;//首字母du[a[strlen(a)-1]-'a'][1]++;//尾字母 data[a[0]-'a']=1;//有无访问data[a[strlen(a)-1]-'a']=1;unit(a[0]-'a',a[strlen(a)-1]-'a');}int shu=0;for(i=0;i<26;i++){if(du[i][0]==du[i][1]+1)shu++;else if(du[i][0]+1==du[i][1])shu++;else if(du[i][0]!=du[i][1])break;}if(shu>2||shu==1||i!=26)//shu表示入度和出度不相同的数目.{printf("The door cannot be opened.\n");continue;}shu=0; for(i=0;i<26;i++){if(find(i)==i&&data[i]==1)shu++;}if(shu==1)//祖先数{printf("Ordering is possible.\n");}elseprintf("The door cannot be opened.\n");} return 0;}
0 0
- hdu1116 Play on Words 判断能否构成欧拉回路
- hdu1116 Play on Words(典型欧拉回路)
- HDU1116-Play On Words 并查集,欧拉回路
- hdu1116—Play on Words(欧拉回路)
- ZOJ2016 POJ1386 HDU1116 Play on Words,欧拉路径及欧拉回路
- UVA10129 POJ1386 HDU1116 ZOJ2016 Play on Words【欧拉回路+并查集】
- HDU1116(Play On Words)可做欧拉回路模板
- POJ 1386 Play on Words(判断欧拉回路存在)
- POJ Play on Words(欧拉回路)
- poj1386 Play on Words (欧拉回路)
- (欧拉回路)Play on Words(P1386)
- Play on Words UVa欧拉回路
- hdu1116 Play on Words
- 例题6-16 uva10129 Play on Words 欧拉回路 并查集判连通+欧拉回路的判断
- PKU 1386 Play on Words 判断图中是否存在欧拉回路、欧拉路
- POJ1386 Play on Words 欧拉回路[并查集判断连通]
- 杭电1116Play on Words(欧拉路径(回路)的判断)
- POJ--1386--Play on Words【判断有向图欧拉通路、欧拉回路】
- Angular添加一个文本框的回车响应
- [LeetCode] Insertion Sort List
- 时间设置
- thinkphp 模板中<ol></ol>自定义序号
- http://www.cnblogs.com/chenying99/category/468890.html
- hdu1116 Play on Words 判断能否构成欧拉回路
- java实现各种数据统计图(柱形图,饼图,折线图)
- 1012. 数字分类 (20)
- 学习Linux驱动编程_第三天
- 1055. The World's Richest
- oracle序列自增长
- 关于alloc
- 4.Socket双向通信--服务器端
- android页面间传递对象