摘要:
最小生成树与并查集的使用。第一次写最小生成树哦,还是Kruskal算法高效、简洁。CODE:#include<stdio.h>#include<stdlib.h>#include<string.h>#include<algorithm>usingnamespacestd;constintmaxn=5100;intv[maxn],u[maxn],w[maxn];//u,线段起始点。v,线段终点。w,权值。intr[maxn];//保存边序号,便于间接排序intp[maxn];//并查集intcmp(constinti,constintj)//间接排 阅读全文
摘要:
这是一个全裸的并查集,其实就是求有多少个不同的连通分量。第一次用并查集,理解的差不多了,接下来就是应用啦。CODE:#include<stdio.h>#include<stdlib.h>#include<stdlib.h>#include<string.h>usingnamespacestd;constintmaxn=1002;intp[maxn];//p用来记录父节点intrank[maxn];//rank用来记录节点数intfind(intx){returnp[x]==x?x:p[x]=find(p[x]);}voidUnion(intx,i 阅读全文