随笔分类 - 并查集
摘要:题目:http://acm.hdu.edu.cn/showproblem.php?pid=1863最小生成树kruskal算法:http://www.zhuoda.org/irini/78592.html一开始看到题目的时候就知道是求最小生成树的题目,而且可以用并查集了构建树,但是不知道怎么将并查集和求最小生成树的算法结合起来,后来看到了最小生成树Kruskal算法是用贪心求最小生成树的,每次都都取权值最小的边去构建树,如果两点的祖先结点相同,及直接连通或者间接连通的时候则不再建边否则创建边使连点直接或间接连通。实现算法如下:#include#include#include#define MA
阅读全文
摘要:题目:http://acm.hdu.edu.cn/showproblem.php?pid=1856代码及解析:#include#define MAX 10000001int per[MAX];int num[MAX];/*int find(int x){ int r,j; r = per[x]; while( r != per[r]) r = per[x]; while(per[x] != r) { j = per[x]; per[x] = r; x = r; } return r;}*///使用递归回溯比用while循环要快很多(不知道为什么)//查找点x的根结点int find(i...
阅读全文

浙公网安备 33010602011771号