题意:

找出直系亲属

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)

Total Submission(s): 1189    Accepted Submission(s): 493

Problem Description

如果A,B是C的父母亲,则A,B是C的parent,C是A,B的child,如果A,B是C的(外)祖父,祖母,则A,B是C的grandparent,C是A,B的grandchild,如果A,B是C的(外)曾祖父,曾祖母,则A,B是C的great-grandparent,C是A,B的great-grandchild,之后再多一辈,则在关系上加一个great-。

 

Input

输入包含多组测试用例,每组用例首先包含2个整数n(0<=n<=26)和m(0<m<50), 分别表示有n个亲属关系和m个问题, 然后接下来是n行的形式如ABC的字符串,表示A的父母亲分别是B和C,如果A的父母亲信息不全,则用-代替,例如A-C,再然后是m行形式如FA的字符串,表示询问F和A的关系。

当n和m为0时结束输入。

 

Output

如果询问的2个人是直系亲属,请按题目描述输出2者的关系,如果没有直系关系,请输出-。

具体含义和输出格式参见样例.

 

Sample Input

3 2

ABC

CDE

EFG

FA

BE

0 0

 

Sample Output

great-grandparent

-

 

思路:

       我用的是Floyd处理了一遍,也可以直接搜索处理,怎么都行,题简单,数据简单,随意怎么写,只要能记录两点之间的距离就行了,还有就是一定是有向图,还有个提示就是输入的不一定只是26个大写字母,一开始一看26就直接自己默认了,结果wa了好几次,丢脸啊..



#include<stdio.h>

#define INF 1000000000

int
map[105][105]; void Floyd()
{
for(int
k = 1 ;k <= 100 ;k ++)
for(int
i = 1 ;i <= 100 ;i ++)
for(int
j = 1 ;j <= 100 ;j ++)
if(
map[i][j] > map[i][k] + map[k][j])
map[i][j] = map[i][k] + map[k][j];
} int
minn(int x, int y)
{
return
x < y ? x : y;
} int main ()
{
int
n ,m ,i ,j ,a ,b ,c;
char
str[10];
while(
scanf("%d %d" ,&n ,&m) && n + m)
{

//getchar();
for(i = 1 ;i <= 100 ;i ++)
for(
j = 1 ;j <= 100 ;j ++)
if(
i == j)map[i][j] = 0;
else
map[i][j] = INF;
for(
i = 1 ;i <= n ;i ++)
{

scanf("%s" ,str);
// getchar();
a = str[0];
b = str[1];
c = str[2];
map[a][b] = map[a][c] = 1;
}

Floyd();
for(
i = 1 ;i <= m ;i ++)
{

scanf("%s" ,str);
a = str[0];
b = str[1];
c = minn(map[a][b] ,map[b][a]);
if(
c == INF || !c)
{

puts("-");
continue;
}
if(
c == 1)
{
if(
map[a][b] == 1) puts("child");
else
puts("parent");
}
else
{
if(
map[a][b] != INF)
{

c -= 2;
for(
j = 1 ;j <= c ;j ++)
printf("great-");
puts("grandchild");
}
else
{

c -= 2;
for(
j = 1 ;j <= c ;j ++)
printf("great-");
puts("grandparent");
}
}
}
}
return
0;
}

hdu3786 Floyd或搜索 水题的更多相关文章

  1. 搜索 水题&&错误集锦

    引子: 本以为搜索的题目老师也不会检查,结果今天早上loli慢悠悠的说:“请同学们提交一下搜索的题目~”,顿时心旌摇曳,却也只能装作镇定自若的样子,点了点头.. 然后就开始了今天的疯狂做题,虽说题目都 ...

  2. hdu 1181:变形课(搜索水题)

    变形课 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/Others)Total Submis ...

  3. 搜索水题四连发_C++

    特别声明:以下题目有部分为原创题,涉及版权问题,不得转载,违者追究 法律责任! 话说这是一套神题,只有你想不到,没有你做不到 题目更正后比 Pascal 跑得还快哈~ 一道特别裸,但是特别坑的搜索题 ...

  4. hdu3786 找出直系亲属 水题

    题意:找出直系亲属Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Su ...

  5. uva 784 Maze Exploration 染色 搜索水题 DFS

    染色问题,其实就是看看图上某一点能扩散多少. 用DFS解决,因为BFS不是很熟 =-=...以后要多练. 提交后32ms,优化了一下,在递归前进行判定,优化到22ms,不是优化的很好... 代码: # ...

  6. poj2386(dfs搜索水题)

    Language:Default Lake Counting Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 42069   ...

  7. DFS水题 URAL 1152 False Mirrors

    题目传送门 /* 题意:一个圈,每个点有怪兽,每一次射击能消灭它左右和自己,剩余的每只怪兽攻击 搜索水题:sum记录剩余的攻击总和,tot记录承受的伤害,当伤害超过ans时,结束,算是剪枝吧 回溯写挫 ...

  8. 【Floyd(并非水题orz)】BZOJ4093-[Usaco2013 Dec]Vacation Planning

    最近刷水太多标注一下防止它淹没在silver的水题中……我成为了本题,第一个T掉的人QAQ [题目大意] Bovinia设计了连接N (1 < = N < = 20,000)个农场的航班. ...

  9. <hdu - 3999> The order of a Tree 水题 之 二叉搜索的数的先序输出

    这里是杭电hdu上的链接:http://acm.hdu.edu.cn/showproblem.php?pid=3999  Problem Description: As we know,the sha ...

随机推荐

  1. Azure Functions(三)集成 Azure Queue Storage 存储消息

    一,引言 接着上一篇文章继续介绍 Azure Functions,今天我们将尝试绑定 Queue Storage,将消息存储到 Queue 中,并且学会适用于 Azure Functions 的 Az ...

  2. PAT-1146(Topological Order)拓扑排序+判断一个序列是否满足拓扑序列

    Topological Order PAT-1146 #include<iostream> #include<cstring> #include<string> # ...

  3. 《从零开始TypeScript》系列 - 基础数据类型

    TypeScript 是 JavaScript 的超集,这里我们只讨论两者中的不同的部分,或者需要注意的部分 数组 Array:在TypeScript中,有两种方式来定义一个数组: 在元素类型后面接上 ...

  4. Fastjson <=1.2.24-反序列化-任意命令执行

    漏洞分析 https://www.secpulse.com/archives/72391.html 复现参考 https://www.cnblogs.com/hack404/p/11980791.ht ...

  5. 浅谈.Net Core后端单元测试

    目录 1. 前言 2. 为什么需要单元测试 2.1 防止回归 2.2 减少代码耦合 3. 基本原则和规范 3.1 3A原则 3.2 尽量避免直接测试私有方法 3.3 重构原则 3.4 避免多个断言 3 ...

  6. 进阶Java多线程

    一.多线程创建方式 1.1.继承Thread类创建线程类 1.实现步骤 定义一个继承Thread类的子类,并重写该类的run()方法: 创建Thread子类的实例,即创建了线程对象: 调用该线程对象的 ...

  7. 为什么要从 Linux 迁移到 BSD2

    OpenZFS on Linux,是项目的 Linux 部分,目前有 345 个活跃的贡献者,有超过 5600 个提交,而且几乎每天都有提交!一些世界上最大的 CDN 和数据存储服务在 FreeBSD ...

  8. Apache配置 8.配置防盗链

    (1)介绍 防盗链,通俗讲,就是不让别人盗用你网站上的资源.这个资源,通常指的是图片.视频.歌曲.文档等. (2)配置 配置防盗链先编辑主机配置文件: #vim /usr/local/apache2. ...

  9. ElementUI Tree控件在懒加载模式下的重新加载和模糊查询

    之所以使用懒加载是为了提高性能,而且只有在懒加载模式下默认会给所有显示节点设置展开按钮.leaf也可以做到,但是要操作数据比较麻烦. 要实现懒加载模式下的模糊查询以及重新加载必须要使用data与laz ...

  10. 提高ASP.NET Web应用性能的24种方法和技巧

    那性能问题到底该如何解决?以下是应用系统发布前,作为 .NET 开发人员需要检查的点. 1.debug=「false」 当创建 ASP.NET Web应用程序,默认设置为「true」.开发过程中,设置 ...