题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=1977题意:求一棵树的严格次小生成树,即权值严格大于最小生成树且权值最小的生成树。思路:若现在已经得到了最小生成树,那么若 添加一条边E,就会得到一个环,我们只需要去掉环上权值小于E且最大的...
分类:
其他好文 时间:
2014-06-23 07:30:14
阅读次数:
202
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=1002题意:求下面这种造型的生成树的个数。思路:生成树的个数可以用那个矩阵A:A[i][i]等于i的度数,A[i][j]等于i到j的边数的相反数。那么A的任意一个n-1阶的行列式(就是删掉任...
分类:
其他好文 时间:
2014-06-23 06:18:06
阅读次数:
227
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=2561题意:给定一个边带正权的连通无向图G= (V,E),其中N=|V|,M=|E|,N个点从1到N依次编号,给定三个正整数u,v,和L (u≠v),假设现在加入一条边权为L的边(u,v),...
分类:
其他好文 时间:
2014-06-23 00:36:38
阅读次数:
471
Kruskal算法用于计算一个图的最小生成树。这个算法的步骤如下:
按照边的权重从小到达进行排序
依次将每条边增加到最小生成树中,除非这条边会造成回路
实现思路
第一个步骤需要对边进行排序,排序方法在之前的章节中已经介绍了很多,可以使用优先级队列进行实现,也可以使用归并排序进行实现,这里采用归并排序。
第二个步骤需要判断是否会造...
分类:
其他好文 时间:
2014-06-22 21:43:31
阅读次数:
204
在正式编写最小生成树的算法之前,还需要做一些准备工作。具体的工作就是建立一些基础对象。
边
首先需要建立边的对象。现在的边要增加权重信息,一条边需要记录两个端点以及这条边的权重,因此边类的轮廓如下:
public class Edge implements Comparable {
public Edge(int v, int w, double we...
分类:
其他好文 时间:
2014-06-22 20:45:50
阅读次数:
147
无向图最小生成树的Prim算法,在实现上方法各异。本文演示了用Python是实现的方法,特别是应用了Python有的一个heapq排序方法,让代码更简洁。...
分类:
其他好文 时间:
2014-06-22 16:11:00
阅读次数:
176
Prim算法用于计算最小生成树。Prim算法分为两种,一种是懒汉式,一种是饿汉式。
懒汉式Prim
懒汉式Prim算法步骤如下:
首先将顶点0加入到MST中
从MST与未访问顶点之间边中选出最短的边,在满足MST的前提下,将这条边加入到MST
代码
import java.util.LinkedList;
import jav...
分类:
其他好文 时间:
2014-06-21 20:37:01
阅读次数:
289
目前已经介绍了Kruskal和Prim算法,他们的复杂度一个是E logE一个是E logV,那么有没有复杂度为E的算法呢?理论上是可能的,但是目前还没有发现该算法。下图是最小生成树算法的发展过程。
从图中可以看到复杂度越來越接近E。
最小生成树的应用
欧几里德最小生成树
问题描述:给定一系列点的坐标,求包含所有点...
分类:
其他好文 时间:
2014-06-21 20:35:44
阅读次数:
368
图遍历的演示
[问题描述]
很多涉及图上操作的算法都是以图的遍历操作为基础的。试写一个程序,演示无向图的遍历操作。
以邻接表为存储结构,实现连通无向图的深度优先和广度优先遍历。以用户指定的结点为起点,分别输出每种遍历下的结点访问序列和相应生成树的边集。
借助于栈类型(自己定义和实现)将深度优先遍历用非递归算法实现。(非递归算法的实现为选做内容,如能实现,适当加分)
[测试数据]
...
分类:
其他好文 时间:
2014-06-18 06:00:19
阅读次数:
251
广播风暴:当网络中存在物理环路,会产生广播风暴STP协议:Spanning Tree Protocol(生成树协议) 逻辑上断开环路,防止广播风暴的产生STP算法:(所有选择都是比小-小的当选) 选择根网桥(Root Bridge):在网络中的所有交换机中选择一台 选择依据:网桥ID(网桥...
分类:
其他好文 时间:
2014-06-18 00:16:46
阅读次数:
252