思路 竟然朋友之间可以传递故事,那么,我们设两两有间接或直接的朋友关系的为一个友好集合,那么我们只要每一个友好集合买一次就好了. 那应该怎么买呢?由于题面让我们求的是[最少的价钱],那我们可以考虑每一个集合让出钱出的最少的来买. 现在我们就要找一个数据结构维护这个集合了,需要支持: 连边(朋友之间) 找出钱出的最少的. (我为什么想到了LCT?) 如果我们每一次连边都满足出钱少的连向出钱多的,那么就可以用并查集来维护了! 最后统计答案,只需要扫一遍,对于每一个人,如果他所在的集合中出钱最少的还没…