博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UVa 10129 - Play on Words (欧拉回路, DFS)
阅读量:5330 次
发布时间:2019-06-14

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

题意

单词链接, 如acm, malform, mouse可以链接

思路

欧拉回路

1.图连通

2.图中所有点的出度==入度,或只有两个奇度点并且一个点的入度比出度大1(终点),另一个点的出度比入度大1(起点)

调试的时候遇到几个比较坑的数据 需要特殊处理判断一下

input

3
2
aa
aaa
1
ab
2
aa
bb
output
Ordering is possible.
Ordering is possible.
The door cannot be opened.

AC代码

#include 
#include
#include
using namespace std;int in[30], out[30], G[30][30], vis[30];void dfs(int a){ vis[a] = 1; for (int b = 0; b < 26; b++) if (!vis[b] && G[a][b]) dfs(b);}int main(){ int T, n; char s[1000+10]; scanf("%d",&T); while(T--){ bool ok = true, ok2 = false; memset(vis, 0, sizeof(vis)); memset(G, 0, sizeof(G)); memset(in, 0, sizeof(in)); memset(out, 0, sizeof(out)); scanf("%d",&n); if(n==1) ok2 = true; while(n--){ scanf("%s",s); int len = strlen(s); int a = s[0]-'a', b = s[len-1]-'a'; G[a][b]++; in[b]++, out[a]++; } if(ok2){ puts("Ordering is possible."); continue; } int cnt1 = 0, cnt2 = 0, cnt = 0; for( int i = 0; i < 26; i++ ){ if( in[i] == out[i] ) continue; if( in[i] + 1 == out[i] ) cnt1++; else if( out[i] + 1 == in[i] ) cnt2++; else{ ok = false; break;} } if(cnt1 && cnt2 && cnt1+cnt2 > 2) ok = false; int num = 0; if(ok){ for( int i = 0; i < 26; i++ ) if( out[i] ){ dfs(i); break; } for( int i = 0; i < 26; i++ ) if( in[i] + out[i] ) if( !vis[i] ){ ok = false; break; } } if(ok) puts("Ordering is possible."); else puts("The door cannot be opened."); } return 0;}

转载于:https://www.cnblogs.com/JinxiSui/p/9740594.html

你可能感兴趣的文章
c++中的string常用函数用法总结!
查看>>
界面交互之支付宝生活圈pk微信朋友圈
查看>>
[DLX精确覆盖+打表] hdu 2518 Dominoes
查看>>
SuperMap iServerJava 6R扩展领域开发及压力测试---判断点在那个面内(1)
查看>>
Week03-面向对象入门
查看>>
一个控制台程序,模拟机器人对话
查看>>
web.xml 中加载顺序
查看>>
pycharm激活地址
查看>>
hdu 1207 四柱汉诺塔
查看>>
Vue 2.x + Webpack 3.x + Nodejs 多页面项目框架(上篇——纯前端多页面)
查看>>
display:none与visible:hidden的区别
查看>>
我的PHP学习之路
查看>>
【题解】luogu p2340 奶牛会展
查看>>
对PostgreSQL的 SPI_prepare 的理解。
查看>>
解决响应式布局下兼容性的问题
查看>>
京东静态网页练习记录
查看>>
使用DBCP连接池对连接进行管理
查看>>
【洛谷】【堆+模拟】P2278 操作系统
查看>>
hdu3307 欧拉函数
查看>>
Spring Bean InitializingBean和DisposableBean实例
查看>>