给定一个带权值的无向图,要求权值之和最小的生成树,常用的算法有Kruskal算法和Prim算法。这篇文章先介绍Kruskal算法。 Kruskal算法的基本思想:先将所有边按权值从小到大排序,然后按顺序选取每条边,假如一条边的两个端点不在同一个集合中,就将这两个端点合并到同一个集合中;假如两个端点在 ...
分类:
编程语言 时间:
2017-10-26 20:02:02
阅读次数:
228
题目: 给定一个无向图,节点数n<=50000,m<=1000000,每条边有两个值t和c,边的长度为t*c···现在要求再t尽量小的情况下,求两节点st的最短距离 题解: 第一次做的时候想都没有想直接用二分+迪杰斯特拉了···哎连复杂度都算不来了··· 正解应该是将边按t升序排序后跑kruskal ...
分类:
其他好文 时间:
2017-10-26 16:11:55
阅读次数:
133
洛谷3366 1 #include<cstdio> 2 #include<algorithm> 3 using namespace std; 4 const int maxn=5010,maxm=200010; 5 int n,m,fa[maxn],tot=0,ans=0; 6 struct edg ...
分类:
其他好文 时间:
2017-10-26 11:46:34
阅读次数:
150
3732: Network Description 给你N个点的无向图 (1 <= N <= 15,000),记为:1…N。 图中有M条边 (1 <= M <= 30,000) ,第j条边的长度为: d_j ( 1 < = d_j < = 1,000,000,000). 现在有 K个询问 (1 < ...
分类:
Web程序 时间:
2017-10-24 22:37:46
阅读次数:
262
想我这样的zz根本不会矩阵树。。。。。 题目链接: http://www.lydsy.com/JudgeOnline/problem.php?id=1016 Solution 首先,如果用上所有边都做不出最小生成树,答案显然是0。。 然后,对于一个图的所有最小生成树,他们有的权值为w的边数一定是一样 ...
分类:
其他好文 时间:
2017-10-24 17:13:55
阅读次数:
157
第一次做prim的最小生成树的题目,据说相比kruskal更适应稠密图,用kruskal会mle?(待测) 关于题目:所有的旗舰店相当于已经连通,其他点没有连通,然而有一个小问题:n个点中有k个旗舰店,应该连n-k条路,但是循环结束标志为i=n-k-1确实wa7,只有将循环结束标志设置为所有的low ...
分类:
其他好文 时间:
2017-10-24 01:37:33
阅读次数:
206
我tm又把n和m打反了。 原题链接:https://www.luogu.org/problemnew/show/1195#sub 为什么我找到的并查集的题都基本上可以用kruskal做啊。。并查集明明可以干很多事情的好不好。。 既然要把n个点连成k个“块”,那自然想到连边要连n-k条。 我们对所有边 ...
分类:
其他好文 时间:
2017-10-24 01:36:15
阅读次数:
138
今天就写并查集了。 原题链接:https://www.luogu.org/problemnew/show/1111#sub 题号好评(删 一开始没看出来,以为只需要把所有边排个序然后用并查集维护最后输出一个时间最大值就好。 后来一想,这特么不是kruskal吗?只不过是记录一下边权的最大值就好。 ( ...
分类:
其他好文 时间:
2017-10-23 23:04:20
阅读次数:
225
恢复内容开始 题目原址在下面: ?传送门? 题目大意:n个点m条边每次询问两点之间路径的最小值的最大值。 思路:先跑一遍Kruskal,将边权从大到小排序,然后选n-1条边。之后跑倍增LCA。 ...
分类:
其他好文 时间:
2017-10-23 20:43:18
阅读次数:
153
题意:给你一个n^2的邻接矩阵,表示u到v的距离,问你要让所以农场通网需要多长网线。 题解:用prim算法,从一个结点开始构造生成树,每次选当前子图和图外结点权值最小的边,把图外结点加入子图中。 prim比kruskal更适合稠密图,未优化的prim时间复杂的为O(u^2),kruskal时间复杂的 ...
分类:
Web程序 时间:
2017-10-15 10:52:38
阅读次数:
151