求最小生成树的Prim算法和Kruskal算法都是漂亮的贪心算法。贪心法的应用算法有Dijkstra的单源最短路径和Chvatal的贪心集合覆盖启发式贪心算法可以与随机化算法一起使用,具体的例子就不再多举了。很多的智能算法(也叫启发式算法),本质上就是贪心算法和随机化算法结合。这样的算法结果虽然也是...
分类:
其他好文 时间:
2015-08-07 19:10:16
阅读次数:
293
UVAlive X-Plosives思路: “如果车上存在k个简单化合物,正好包含k种元素,那么他们将组成一个易爆的混合物” 如果将(a,b)看作一条边那么题意就是不能出现环,很容易联想到Kruskal算法中并查集的判环功能(新加入的边必须属于不同的两个集合否则出现环),因此本题可以用并查集实现。模...
分类:
其他好文 时间:
2015-08-07 13:11:40
阅读次数:
107
【MST+虚拟节点+Kruskal】swjtuOJ 2093【注:交大的看到这篇文章要学会自己写,不要为了比赛而比赛!~】题目大意给你n个节点和n个节点的权值,m条连接边,求连通权值的最小和(MST)
n <= 10^5
最小生成树问题,注意原图不一定连通,构造虚拟节点0,0到其他节点边权值赋值为节点权值,求增加2n条边之后的MST即可,注意多加n个节点,数组要开成原来的两倍,笔者RE了一...
分类:
其他好文 时间:
2015-08-07 11:06:02
阅读次数:
153
#include#include#includeusing namespace std;struct node{ int s, e, w; node(int ss, int ee, int ww):s(ss),e(ee),w(ww){} bool opera...
分类:
Web程序 时间:
2015-08-06 09:25:35
阅读次数:
119
Kruskal算法的过程:(1) 将全部边按照权值由小到大排序。 (2) 按顺序(边权由小到大的顺序)考虑没条边,只要这条边和我们已经选择的边步构成圈,就保留这条边,否则放弃这条边。算法 成功选择(n-1)条边后,形成一个棵最小生成树,当然如果算法无法选择出(n-1)条边,则说明原图不连通。图中的路...
分类:
编程语言 时间:
2015-08-05 20:18:31
阅读次数:
183
//N个女孩,M个男孩,雇佣一个人的费用为10000
//男孩与女孩之间的关系为d,那么如果雇佣了一个,雇佣另一个的费用为10000-d
//每个人只能通过一种关系优惠
//问最少需要花费多少雇佣这些人
//很明显的最大生成树
#include
#include
#include
#include
using namesp...
分类:
其他好文 时间:
2015-08-04 13:40:12
阅读次数:
83
题意:有n个城市,城市之间有n-1条路连接每个城市,也就是说有一个树,敌人在一些城市放了导弹,共有m个导弹,敌人想把导弹运到一起然后开战,现在给你个任务就是摧毁一些路,使任何两个导弹都不能运到一起,摧毁每条路都有相应的代价,求最小的代价。
分析:
导弹不能运到一起就是说任何两个导弹不能在一个连通图中,所以我们的任务就是用最少的代价摧毁一些路使m个导弹分别在m个连通图中。
这题是就反面,最少的...
分类:
其他好文 时间:
2015-08-03 19:08:55
阅读次数:
181
一、最短生成路的2种存图方法(邻接矩阵和邻接表):
1)邻接矩阵(适合稠密图即边远远多于点):
1、时间复杂度一般在n^2;
2、可以解决重边情况;map[i][j] = min( map[i][j] , input);
3、初始化;a[i][j] = INF; a[i][i] = 0;
4、邻接矩阵点的最大极限在3000左右
5、图示:
2)邻接表(适合疏密图即边...
分类:
其他好文 时间:
2015-07-31 18:38:13
阅读次数:
210
uvalive3887给定一个带权的无向图,求得一棵最小生成树,是的树中的最大边权-最小边权的差值最小分析:当确定一个最小边时(其他的边的权值都比他大),那么之后按照kruskal算法得到的最小生成树,此时得到的最小生成树的最大权值也肯定是最小的,因为是kruskal是按照贪心来选边的。所以只要不断...
分类:
其他好文 时间:
2015-07-30 09:22:21
阅读次数:
97
// poj1861 最小生成树 prim
//
// 一个水题,为的只是回味一下prim模板,日后好有个照应不是
#include
#include
#include
#include
#include
using namespace std;
const int MAX_N = 1008;
const int INF = 0x3f3f3f3f;
int g[M...
分类:
其他好文 时间:
2015-07-29 23:11:10
阅读次数:
253