hrbust 哈理工oj 1633 word!word!【欧拉路、欧拉回路的有向图判断】
2016-03-13 19:29
309 查看
word!word! | ||||||
| ||||||
Description | ||||||
为了备考CET-6,ikki在家里每天都背着单词,但是背多了就难免会有点烦躁。word!word!.....背不完的word。 一次ikki在写单词的时候发现:一些紧靠在一起的单词,前一个单词的最后一个字母和后面一个单词的首字母相同,这些单词看起来就像被“连”在了一起,甚至首尾单词还能相接形成环状,于是她想知道可不可以通过适当的改变纸上写的一些单词的顺序之后使得这些单词可以全部“连”在一起。例如:样例1中的4个单词fly self raw year,可以这样“连”起来:self-fly-year-raw;样例2中abc-cde-efa 并且最后一个单词的最后一个字母和第一单词的第一个字母相同,这样就形成了环状。 | ||||||
Input | ||||||
多组测试数据,第一行一个整数T表示测试数据的组数。 对于每组测试数据:第一行一个整数n(1<n<100)表示纸上写的单词的个数,第二行包括n个单词,每个单词长度不超过 10,且全部由小写字母组成。 | ||||||
Output | ||||||
对于每组数据,如果可以把全部单词连接起来并能形成环状则输出"circle” ,否则如果可以把所有单词连接起来形成一 条直线则输出"path”,否则输出"oh no”。 | ||||||
Sample Input | ||||||
3 4 fly self raw year 3 abc cde efa 3 mac create delete | ||||||
Sample Output | ||||||
path circle oh no |
欧拉回路:所有节点入度==出度、
欧拉路:除起点和终点外所有节点的入度==出度,终点入度-出度==1&&起点出度-入度==1
我们设置两个数组ru【】,chu【】表示各个节点的入度和出度。在输入字符的时候,处理首位字母的入度和出度,在最终判断时候加上上述满足的条件即可。
AC代码:
#include<stdio.h>
#include<string.h>
using namespace std;
int ru[105];
int chu[105];
int vis[105];
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
memset(ru,0,sizeof(ru));
memset(chu,0,sizeof(chu));
memset(vis,0,sizeof(vis));
int n;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
char str[15];
scanf("%s",str);
int x=str[0]-'a';
int y=str[strlen(str)-1]-'a';
ru[x]++;
chu[y]++;
vis[x]=1;
vis[y]=1;
}
int zhongdian=0;
int qidian=0;
int cont=0;
for(int i=0;i<30;i++)
{
if(vis[i]==1)
{
if(ru[i]!=chu[i])
{
if(ru[i]-chu[i]==1)
{
zhongdian++;
}
if(chu[i]-ru[i]==1)
{
qidian++;
}
cont++;
}
}
}
if(cont==0)
{
printf("circle\n");
}
else if(cont==2)
{
if(zhongdian==1&&qidian==1)
{
printf("path\n");
}
else
{
printf("oh no\n");
}
}
else
{
printf("oh no\n");
}
}
}
相关文章推荐
- 2716: [Violet 3]天使玩偶&&2648: SJY摆棋子|K-DTree
- Matlab位运算操作
- ionic 模型 $ionicModal
- 平衡二叉树
- Android中的一些基础知识(一)
- 向PE文件中空白处添加代码
- Android spannableStringBuilder用法整理
- 深入Java虚拟机读书笔记之高效并发
- codeforces624B Making a String 贪心 排序
- Sorting Railway Cars----CodeForces 605A
- 实验0 了解和熟悉操作系统
- 当你决定为你了的理想燃烧 生活的压力与生命的尊严 哪一个重要
- 软件工程进度条-第二周
- [转]的C#实现三维数字地形漫游(基于Irrlicht)
- 算法训练 s01串 (简单递归)
- 杭电oj 2018 母牛的故事
- OC基础
- groovy/java自实现json解析器(3)JsonArray
- 在JavaScript函数中使用EL表达式注意的事项
- Hdu 2186 悼念512汶川大地震遇难同胞——一定要记住我爱你【基础】