UVA-10129 Play on Words
来源:互联网 发布:胸肌下轮廓 知乎 编辑:程序博客网 时间:2024/05/22 14:46
题目链接:https://vjudge.net/problem/UVA-10129
输入的字符串首尾相连,可以看成一个26个字母组成的有向图,如果可以找到一条欧拉通路,则有解
先判断出入度是否符合,再判断是否连通,都满足则有欧拉通路
#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std;typedef long long ll;const int N=1e5+10;int n;bool g[26][26];bool vis[26],vis0[26];int num[26];void dfs(int u){vis[u]=true;for(int i=0;i<26;i++){if(g[u][i]&&!vis[i])dfs(i);}}bool f(){for(int i=0;i<26;i++)if(vis0[i]){memset(vis,false,sizeof(vis));dfs(i);for(int i=0;i<26;i++){if(vis0[i]!=vis[i]) break;if(i==25) return true;}}return false;}int main(){string s;int T;scanf("%d",&T);while(T--){scanf("%d",&n);memset(num,0,sizeof(num));memset(g,false,sizeof(g));memset(vis0,false,sizeof(vis0));for(int i=0;i<n;i++){cin>>s;int l=s.length();int a=s[0]-'a';int b=s[l-1]-'a';g[a][b]=true; //有向图邻接矩阵 num[a]--; //入减一 num[b]++; //出加一 vis0[a]=vis0[b]=true; //出现过此字符 }bool flag=true,in=false,out=false;for(int i=0;i<26;i++) //判断出入度 {if(num[i]>1||num[i]<-1){flag=false;break;}if(num[i]==-1){if(in){flag=false;break;}in=true;}if(num[i]==1){if(out){flag=false;break;}out=true;}}if(flag) flag=f(); //判断连通 if(flag) printf("Ordering is possible.\n");else printf("The door cannot be opened.\n");}return 0;}
阅读全文
0 0
- uva 10129 - Play on Words
- uva 10129 - Play on Words
- uva 10129 - Play on Words
- UVa 10129 - Play on Words
- UVa 10129 - Play on Words
- UVA 10129 - Play on Words
- uva 10129 - Play on Words
- UVA 10129 Play on Words
- uva 10129 - Play on Words
- uva 10129 Play on Words
- uva 10129 Play on Words
- uva 10129 - Play on Words
- UVA 10129 Play on Words
- UVa 10129 Play on Words
- UVA 10129 - Play on Words
- UVA - 10129 Play on Words
- UVA - 10129 Play on Words
- uva -10129 - Play on Words
- 每日一练-20171102
- A1010. Radix
- Remove Element
- 718. Maximum Length of Repeated Subarray
- 11.1~11.2NOIP模拟赛总结
- UVA-10129 Play on Words
- ActiveMQ的初步了解
- fresco动画
- 编译ssd至build时全部错误cv::未定义等
- js金额大小写转换
- Implement strStr()
- 神经网络移植到STM32F4上的应用
- 【Java没基础】函数式编程——Stream API 中的收集器
- Linux网络配置