kruskal算法的思想是,将每条边从小到大排序,然后从最小的开始选,如果这两个点不在同一个集合里,就利用并查集将两个集合合并,否则就放弃,直到选到第n-1条边为止,因为一个有n个节点的生成树只有n-1条边。
这道题目主要的问题在于字典序(我本来以为答案要先按权值来排,再按字典序排,其实是全部按字典序排(没办法,英语不好)):
1.要排两次,第一次排要按权值,起点,终点结构体三级排序。保证等会去选的顺序是对的。
2.选完后,再进行一次排序,只需按字典序排,答案就出来了。
kruskal算法的思想是,将每条边从小到大排序,然后从最小的开始选,如果这两个点不在同一个集合里,就利用并查集将两个集合合并,否则就放弃,直到选到第n-1条边为止,因为一个有n个节点的生成树只有n-1条边。
这道题目主要的问题在于字典序(我本来以为答案要先按权值来排,再按字典序排,其实是全部按字典序排(没办法,英语不好)):
1.要排两次,第一次排要按权值,起点,终点结构体三级排序。保证等会去选的顺序是对的。
2.选完后,再进行一次排序,只需按字典序排,答案就出来了。