我的PAT-ADVANCED代码仓:https://github.com/617076674/PAT-ADVANCED
原题链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805456881434624
题目描述:
题目翻译:
1034 犯罪团伙的头目
警察发现一个犯罪团伙的头目的方法之一是:检查人们的电话记录。如果A和B之间有一个电话记录,我们称A和B是相联系的。此联系的权重被定义成在这两人之间所有电话记录的总时长。一个"Gang"的定义如下:成员人数超过两人,且总的联系权重大于一个给定的权重下限K。对于每一个犯罪团伙,有着最大总权重的那个人就是团伙的头目。现在提供一个电话记录的列表,你需要寻找犯罪团伙及其头目。
输入格式:
每个输入文件包含一个测试用例。在每个测试用例中,第一行包含两个正数N和K(均小于或等于1000),分别代表电话记录数和判定"Gang"的权重下限K。接下来的N行,有着以下格式:
Name1 Name2 Time
其中,Name1和Name2分别是打电话两人的姓名,Time是这个电话的时长。名字是由"A"~"Z"组成字符串,长度为3。时长是一个不超过1000分钟的正整数。
输出格式:
对每一个测试用例,在第一行中打印出犯罪团伙的数目。接着,对于每一个犯罪团伙,在同一行中打印出其头目和犯罪团伙的人数。题目保证犯罪团伙的头目是唯一的。输出必须按照犯罪团伙头目的字母顺序排列。
输入样例1:
8 59
AAA BBB 10
BBB AAA 20
AAA CCC 40
DDD EEE 5
EEE DDD 70
FFF GGG 30
GGG HHH 20
HHH FFF 10
输出样例1:
2
AAA 3
GGG 3
输入样例2:
8 70
AAA BBB 10
BBB AAA 20
AAA CCC 40
DDD EEE 5
EEE DDD 70
FFF GGG 30
GGG HHH 20
HHH FFF 10
输出样例2:
0
知识点:图的深度优先遍历、并查集
思路一:图的深度优先遍历
注意点:
(1)判断一个团伙是否是"Gang",需要满足两个