L2-030 冰岛人PTA_输入首先在第一行给出一个正整数 n(1<n≤10 5 ),为当地人口数。随后 n 行,每行给-CSDN博客

admin 阅读:13 2024-04-30 14:32:13 评论:0

L2-030 冰岛人PTA_输入首先在第一行给出一个正整数 n(1<n≤10 5 ),为当地人口数。随后 n 行,每行给-CSDN博客

  2018年世界杯,冰岛队因1:1平了强大的阿根廷队而一战成名。好事者发现冰岛人的名字后面似乎都有个“松”(son),于是有网友科普如下:

  冰岛人沿用的是维京人古老的父系姓制,孩子的姓等于父亲的名加后缀,如果是儿子就加 sson,女儿则加 sdottir。因为冰岛人口较少,为避免近亲繁衍,本地人交往前先用个 App 查一下两人祖宗若干代有无联系。本题就请你实现这个 App 的功能。 输入格式:

  输入首先在第一行给出一个正整数 N(1

  随后一行给出正整数 M,为查询数量。随后 M 行,每行给出一对人名,格式为:。注意:这里的是不带后缀的。四个字符串均由不超过 20 个小写的英文字母组成。

  题目保证不存在两个人是同名的。 输出格式:

  对每一个查询,根据结果在一行内显示以下信息: 若两人为异性,且五代以内无公共祖先,则输出 ;若两人为异性,但五代以内(不包括第五代)有公共祖先,则输出 ;若两人为同性,则输出 ;若有一人不在名单内,则输出 。

  所谓“五代以内无公共祖先”是指两人的公共祖先(如果存在的话)必须比任何一方的曾祖父辈分高。 输入样例:

  输出样例:

  思路:通过后缀区分维京人和性别,由于姓的最后一个字母都不同,只看最后一个字母即可。名字通过map来对应下标,两次搜索记录两人的祖先即可。

  坑点!!!!!!:

  1....这个题说的五代以内是两者的公共祖先必须都在两人的五代以内才行,如果公共祖先是一个人的十八代祖宗,但却在另一个人的五代以内也无法通过(感觉是测试点3和6)

  2....输入数据时不要在一个循环里同时处理姓名的输入和关系处理,因为有的数据是父亲在儿子的后面输入,会导致错误,先存下所有人的姓名,再一次循环处理关系!!!

  3.....姓最后是“f”的人,可以处理也可以不处理,对题目无关,因为后缀是父亲的名字。

本文 zblog模板 原创,转载保留链接!网址:https://www.shqiangcheng.com/post/4999.html

可以去百度分享获取分享代码输入这里。
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

发表评论
搜索
排行榜