题目连接:http://acm.pku.edu.cn/JudgeOnline/problem?id=1386
题目大意:给n个盘子,每个盘子中有一个有小写字母组成的单词,现在给定n个单词,要求按照下面的规则,判断门能不能打开!
要求:一个单词的首字母和另一个单词的尾字相同,依次这样走下去,是否能把所有的单词都串起来!
算法: 欧拉回路+dfs;
相关资料:
定理2 有向图 G为欧拉图,当且仅当G的基图[1]连通,且所有顶点的入度等于出度。
推论2 有向图G为半欧拉图,当且仅当G的基图连通,且存在顶点u的入度比出度大1、v的入度比出度小1,其它所有顶点的入度等于出度。
第1:判断图是不是连通(dfs);
第2:判定是否为一条欧拉路径或欧拉回路!
满足上面2点即可!
模型的建立可以参考:《欧拉回路的性质与探究》
代码: