#P16778. [GKS 2020 #H] Friends
[GKS 2020 #H] Friends
题目描述
世界上有 个人,编号为 到 。第 个人有一个由大写英文字母组成的独特名字 。
两个人是朋友,当且仅当存在至少一个字母,同时出现在两个人的名字中(该字母在各自名字中出现的位置不必相同)。毕竟,友谊需要共同点!
从人 到人 的长度为 的友谊链,是指一个序列 ,满足 ,,并且对于 到 , 与 是朋友。注意,任意两个人之间可能有零条或多条友谊链。
对于给定的 对人,你能找出他们之间最短友谊链的长度吗?如果两人之间不存在友谊链,则输出 。
输入格式
输入的第一行给出测试用例的数量 。接下来有 个测试用例。每个测试用例的第一行包含两个整数 和 。第二行包含 个字符串,即每个人的名字。第 个字符串(从 开始编号)为 。随后 行,每行描述一个查询。第 行包含两个整数 和 ,表示名字列表中两个人的索引(从 开始计数)。
输出格式
对于每个测试用例,输出一行,格式为 Case #x: y,其中 是测试用例编号(从 开始), 是按顺序给出的 个查询的答案列表,用空格分隔。
2
5 2
LIZZIE KEVIN BOHDAN LALIT RUOYU
1 2
1 3
2 2
KICK START
1 2
1 2
Case #1: 2 3
Case #2: -1 -1
提示
在样例 #1 中,共有 个查询:
- 第一个查询:LIZZIE 与 KEVIN 是朋友(因为他们的名字中都包含字母 E)。因此最短友谊链长度为 。
- 第二个查询:LIZZIE 与 BOHDAN 不是直接朋友,但存在两条可能的最短友谊链(分别经由 KEVIN 或 LALIT)。因此最短友谊链长度为 。注意,还存在其他更长的友谊链。
在样例 #2 中,共有 个查询:
- 第一个查询:KICK 与 START 之间没有友谊链连接。
- 第二个查询与第一个相同。注意,查询不一定互不相同。
限制条件
。
。
对于所有 , 由大写英文字母组成。
对于所有 ,。
所有 互不相同。
对于所有 ,。
测试集 1
。
测试集 2
最多 个测试用例满足 。
其余测试用例满足 。
翻译由 DeepSeek V4 Pro 完成