这题其实本质不难,但是对于输入输出要求太多,可以多定义几个map变量存储要求的参数,本质上还是并查集的应用。
- 题目要求权重最大的为帮派老大,解题思路为首先记录输入的所有关系,定义map变量weight,对于关系如AAA BBB time,wegiht[AAA]和weight[BBB]都加上相应的time,使用数组记录所有的关系,以方便遍历关系,并使用Union操作。
- 遍历1记录的关系,执行Union操作。在Union操作中,对于weight大的结点定义为父结点。同时,维护totalWeight和num两个map变量用于记录帮派总权重和帮派总人数,便于后续对其是否为黑帮进行判定。
- 遍历所有结点,判定父结点是否为帮派老大,其判定标准如下:
- 帮派人数num>2;
- 帮派总权重totalWright>2threshold。这里要注意是2threshold,因为在1中,totalWegiht[AAA]和totalWeight[BBB]都加上相应的time,所以每个关系的time被相加了两次。
- 对于帮派老大输出字典排序,没什么好说的了。

京公网安备 11010502036488号