本文摘自:http://www.cnblogs.com/biyeymyhjob/archive/2012/07/30/2615542.html最小生成树-Prim算法和Kruskal算法Prim算法1.概览普里姆算法(Prim算法),图论中的一种算法,可在加权连通图里搜索最小生成树。意即由此算法搜索...
分类:
编程语言 时间:
2014-12-31 09:55:18
阅读次数:
362
68个点的简单连通图只有20个哈密顿圈,增加了12条连线,哈密顿圈就达到了两万多亿个...
分类:
其他好文 时间:
2014-12-29 21:36:16
阅读次数:
316
题目大意:给定一个无向连通图,我们需要给每条边附一个1~m的不重复的权值,使1到n的期望权值和最小
首先贪心思想是求出每条边的期望经过次数 然后对期望值最小的边附加m的权值,第二小的边附加m-1的权值,以此类推。
令f[i]为第i个点的期望经过次数 那么每条边的期望经过次数就是f[x]/d[x]+f[y]/d[y] 其中d[x]表示x的度数
那么显然有:
f[1]=1+Σ[1->j]f[j...
分类:
其他好文 时间:
2014-12-29 10:28:39
阅读次数:
126
给出一个无向图,保证是连通的,问要把这个无向图变成边双连通图需要至少修建几条新路。...
分类:
其他好文 时间:
2014-12-28 10:26:58
阅读次数:
150
比起求无向图关节点的算法,只是多了一个栈,用来储存不存在关节点的所有边,遇到关节点之后弹出所有边进行储存
int dfs(int u, int fa)
{
int lowu = dfn[u] = ++deep;
int son = 0;
for(int i = head[u]; ~i; i = e[i].next) {
int v = e[i].v;
...
分类:
其他好文 时间:
2014-12-26 06:13:59
阅读次数:
206
Fleury (弗罗莱) 算法通俗解释
1.定义
2.举例说明
图2为连通图G,现利用Fleury算法求它的欧拉通路。(注意区分:欧拉通路、欧拉回路)
其中一种欧拉通路如下:4 5 8 7 6 8 9 1 5 3 2 4 6,其搜索路径如下图所示:
现在让我们来分析算法实现过程:
假设我们这样走:4,6,8,5,此时在5处有三种选择(3,4,1...
分类:
编程语言 时间:
2014-12-23 17:23:07
阅读次数:
1632
求对于给定一个连通图,加多少条边可以变成边双连通图。
一个有桥的连通图要变成边双连通图的话,把双连通子图收缩为一个点,形成一颗树。需要加的边为(leaf+1)/2 (leaf为叶子结点个数)。
对于此题,有重边但重边不加入计算。
重边的话,要么在开始去掉,要么用桥来计算入度。
因为桥不属于任何一个边双连通分支,其余的边和每个顶点都属于且只属于一个边双连通分支。对于重边而言,只有一对...
分类:
移动开发 时间:
2014-12-22 21:23:30
阅读次数:
215
描述: 一个连通图的生成树是指一个极小连通子图,它含有图中的全部顶点,但只有足以构成一棵树的 n-1 条边。我们把构造连通网的最小代价生成树成为最小生成树。而Prim算法就是构造最小生成树的一种算法。定义: 假设N = (P,{E})是连通网,TE是N上最小生成树中边的集合。算法从U = {U0.....
分类:
编程语言 时间:
2014-12-22 14:11:52
阅读次数:
258