首先DISS一下devc,个byd玩意一调试就闪退,感谢你帮鼠鼠治疗低血压,还是VS2019好用啊。
巨坑:N为通话数,按照极端情况,最多会有2N个人,所以要把数组开到2N个元素,否则会挂一个测试样例(段错误)。读题一定要认真。
分析题目,不难看出要用到DFS来找连通分量,然后计算每个连通分量的边权之和。计算边权之和有两种方法:(1)在DFS的过程中,对每个节点,先将与之相连的边的权值加上,然后再判断相邻节点是否已被访问过;每访问完一条边,就将其权值设为0。 (2)在edge结构体中增加一个属性,标记该边是否被访问过。
为了将字符串进行排序,可以使用stl的sort方法,也可以将数据存入std::map容器中,这样使用迭代器遍历的时候会自动将其按照增序排序。
实现方法1:
#include
#include
#include
实现方法2:
#include
#include
#include