百题嘻嘻
题目 831 [USACO 3.1] 最短网络
2017-10-12 11:38:08
|
|
第一次写最小生成树!
|
|
脑抽了使用邻接表算....果然密集图还是邻接矩阵快
题目 831 [USACO 3.1] 最短网络
2016-11-03 10:17:26
|
|
与457题一样,用Prim读入邻接矩阵
题目 831 [USACO 3.1] 最短网络
2016-02-18 15:05:07
|
|
都好快的说。。
|
|
100个点,最多5050条边,傻B呵呵的开了5000 ,,RE了一次。。。。
题目 831 [USACO 3.1] 最短网络
2015-08-13 20:23:07
|
|
水啊水
|
|
研究了一下Kruskal。
用了一种效率很低的【不相交集合】处理的方法处理的。但是竟然还是那么快,堪比二叉堆+Prim,这。。。 下面给上效率较高[路径压缩]的并查集的Kruskal的写法。[可用按秩合并或路径压缩的启发式策略来优化]
题目 831 [USACO 3.1] 最短网络
2013-12-05 23:11:03
|
|
MST。介绍一下Prim吧。
根据题意,也不难理解什么是MST。 首先,MST具备以下2条重要的性质: 1.最优子结构;W(T)=W((u,v))+W(T1)+W(T2);(T1,T2为两棵子树,而(u,v)为连接这两棵树的边,即你切断的那条边) 2.重叠子结构;(最终均可化简至有限的相同的基本问题) 看似可以DP,但是,对于MST,不难发现还具备这条性质(其实是一个简单的定理): 若将图G(V,E)化成2个部分,A和G-A,则若存在边(u,v)∈E使得A与G-A联通,则E(Min)∈MST. 这条定理告诉我们MST具备“局部最优解同时也是全局最优解“的属性; 而具备该属性则说明存在某种贪心策略可以生成MST。 Prim算法就是用到了这条定理来完成的。其实它和迪杰斯特拉很像。对于邻接表储存的稀疏图,加上二叉堆后可大大提高算法的速度。 当然,用斐波那契堆优化可达到极为拔群的效果。 |