博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UVA - 10129 Play on Words (欧拉回路+并查集)
阅读量:4972 次
发布时间:2019-06-12

本文共 1113 字,大约阅读时间需要 3 分钟。

思路:

分别存下每个字符串的首尾字符,以字符为结点,单词看作一条变,就变成了求欧拉回路了,先判断下图是否连通,然后根据欧拉回路的结论:最多只能有两个点的入读不等于初读,而且必须是一个点的出度恰好比入度大1(将它作为起点),另一个的入度比出度大1(将它作为终点);

实现代码:

#include
#include
using namespace std;const int M = 30;int f[M];int in[M],out[M];int fd(int x) {
return f[x]==x? x:f[x]=fd(f[x]);}void mix(int a,int b) {a=fd(a);b=fd(b);if(a!=b) f[a]=b;}void init(){ for(int i = 0;i <= M;i ++){ f[i] = i; } memset(in,0,sizeof(in)); memset(out,0,sizeof(out));}int main(){ string s; int t,n; cin>>t; while(t--){ init(); cin>>n; for(int i = 0;i < n;i ++){ cin>>s; int len = s.size(); int x = s[0] - 'a'; int y = s[len-1] - 'a'; in[x]++; out[y]++; //cout<
<<" "<
<
< 26;i ++){ if(i==f[i]&&(in[i]||out[i])){ ans++; } } //cout<
<
2) flag = false; } else flag = false; if(flag) cout<<"Ordering is possible."<

 

转载于:https://www.cnblogs.com/kls123/p/8530914.html

你可能感兴趣的文章
fast neural style transfer图像风格迁移基于tensorflow实现
查看>>
React学习及实例开发(一)——开始
查看>>
数据库主键选取策略[转]
查看>>
jquery 中 $.map 用法
查看>>
【图解】Hive文件存储格式
查看>>
查询到底什么时候执行?
查看>>
牛客网——密码翻译
查看>>
牛客网——数制转换
查看>>
第三周学习总结
查看>>
Activity的四种传值方式:
查看>>
page
查看>>
C#导入导出(excel)数据
查看>>
求栈中的最大值
查看>>
adb and zlib for vs2008
查看>>
java如何实现多个线程并发运行
查看>>
01我为什么学Unity3d
查看>>
Swift学习笔记7:关闭
查看>>
编译AVX代码,升级Redhat 5.5 GCC至4.7.1
查看>>
pig 的chararry不能用于比较的类型可以comparison operator
查看>>
Ubuntu下deb包的安装方法
查看>>