刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

2.为 i 做 e
“为 i 做 e”是最近新出的流行梗。这里的 i 和 e 指 MBTI 人格测试中的不同性格,i 是社恐,e 是外向。“为 i 做 e”就是在一群内向的人中促使自己变成外向(奇奇怪怪无用的知识又增加了)。
给定某次大型活动中的餐桌安排,请你判断一下哪几桌的客人需要“为 i 做 e”了。
时间限制:6000
内存限制:65536
输入
输入第一行首先给出正整数 n(≤ 105),随后 n 行,每行给出一个人的代号和其性格,其中代号由 8 位数字组成,性格是单个字母 i 或 e,其间以空格分隔。 接下来是餐桌安排。首先给出正整数 m(≤ 103),为餐桌数量,随后 m 行,每行给出一个正整数 k(≤ 10)以及该桌 k 位客人的代号,用空格分隔。第 i 行对应的是第 i 桌的信息(1 ≤ i ≤ m)。题目保证没有人在餐桌安排中重复出现,且餐桌上每个人的性格都已给出。
输出
如果一桌客人全是 i 人,则意味着有人要“为 i 做 e”了。请在一行中按递增序输出这些桌的桌号。数字间以 1 个空格分隔,行首尾不得有多余空格。如果这样的餐桌不存在,则在一行中输出 None。
样例输入
样例1:
10
00000000 i
12345678 e
23468270 i
78827341 e
67476289 i
35748108 e
99999999 i
40926483 i
88472901 i
55032849 i
3
3 00000000 67476289 99999999
4 12345678 78827341 35748108 55032849
3 23468270 40926483 88472901
样例2:
10
00000000 i
12345678 e
23468270 i
78827341 e
67476289 i
35748108 e
99999999 i
40926483 i
88472901 i
55032849 i
2
4 78827341 35748108 55032849 00000000
6 12345678 67476289 99999999 23468270 40926483 88472901
样例输出
样例1:
1 3
样例2:
None

使用微信搜索喵呜刷题,轻松应对考试!

答案:

解析:

根据题目描述,我们需要判断哪些餐桌的客人全是内向的人(即全是性格为 i 的客人),然后输出这些餐桌的桌号。如果这样的餐桌不存在,则输出 None。

具体实现时,我们可以使用Python编程语言。首先读取输入,包括总人数 n、每个人的代号和性格,以及餐桌的安排。然后遍历每桌客人,对于每桌,统计性格为 i 的客人的数量。如果某桌全是内向的人,即性格为 i 的客人数量等于该桌的人数,将桌号添加到结果集合中。最后,将结果集合中的桌号按递增序输出。

以下是Python代码实现:

def find_tables_needing_adjustment():
    n = int(input())  # 读取总人数
    people = []  # 存储每个人的代号和性格
    for _ in range(n):
        code, personality = input().split()  # 读取每个人的代号和性格
        people.append((code, personality))  # 存储为元组
    
    m = int(input())  # 读取餐桌数量
    tables = []  # 存储餐桌信息
    for _ in range(m):
        k = int(input())  # 读取每桌的人数
        codes = input().split()  # 读取每桌客人的代号
        table = (k, codes)  # 存储为元组,包含人数和代号列表
        tables.append(table)  # 将餐桌信息添加到列表中
    
    tables_needing_adjustment = set()  # 存储需要"为 i 做 e"的餐桌号
    for table in tables:
        all_introverts = True  # 假设桌上都是内向的人
        for code in table[1]:  # 遍历桌上的每个客人的代号
            if code not in people or people[code][1] != 'i':  # 如果客人不是内向的或不存在于输入中
                all_introverts = False  # 说明桌上不是全是内向的人
                break  # 退出循环检查下一桌
        if all_introverts:  # 如果桌上全是内向的人
            tables_needing_adjustment.add(table[0])  # 将桌号添加到需要调整的餐桌集合中
    
    if tables_needing_adjustment:  # 如果存在需要调整的餐桌
        print(*sorted(tables_needing_adjustment))  # 输出按递增序的桌号,数字间以空格分隔
    else:  # 如果不存在这样的餐桌
        print("None")  # 输出 None
创作类型:
原创

本文链接:2.为 i 做 e“为 i 做 e”是最近新出的流行梗。这里的 i 和 e 指 MBTI 人格测试中

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share