枚举最小边进行kruskal。#include #include using namespace std;#define maxn 120#define maxm 10000struct edge{ int u,v,w;}e[maxm];int p[maxn],n,m;int find(int...
分类:
其他好文 时间:
2014-07-12 14:37:52
阅读次数:
250
关于三个简单的图论算法prim,dijkstra和kruskal三个图论的算法,初学者容易将他们搞混,所以放在一起了。prim和kruskal是最小生成树(MST)的算法,dijkstra是单源最短路径的算法。prim最小生成树prim算法采用了贪心策略:把点分成两个集合,A为已被处理(已经在最小生...
分类:
其他好文 时间:
2014-07-12 00:34:01
阅读次数:
216
Prim算法1.概览普里姆算法(Prim算法),图论中的一种算法,可在加权连通图里搜索最小生成树。意即由此算法搜索到的边子集所构成的树中,不但包括了连通图里的所有顶点(英语:Vertex (graph theory)),且其所有边的权值之和亦为最小。该算法于1930年由捷克数学家沃伊捷赫·亚尔尼克(...
分类:
其他好文 时间:
2014-07-12 00:26:56
阅读次数:
298
并查集能做什么? 1.连接两个对象; 2.查询两个对象是否在一个集合中,或者说两个对象是否是连接在一起的。 并查集有什么应用? 1. Percolation问题、 2. 无向图连通子图个数 3. 最近公共祖先问题 4. Kruskal最小生成树 5. 社交网络 等等 并查集数据结构: 并查集是一种树...
分类:
其他好文 时间:
2014-07-09 14:13:20
阅读次数:
214
最小生成树+BFS
题意是说在迷宫之中找出连接所有点的最小生成树,其他杂项完全不理会,我理解题意就花了好久。
我用的Kruskal,输入的时候给每个点标号,然后BFS 每个点,找出最近的所有边,接下来就是模版的Kruskal。
因为是迷宫,所以只能用BFS去搜与它相通的每个点的最短路。
不过数据有点坑,建议数组开大一点,我提交的时候RE一次,绝对不止100个...
分类:
其他好文 时间:
2014-07-08 18:34:52
阅读次数:
240
最近在整理图论的算法。并且做了一些基础的题来练习,现在做一个总结,然后准备进入下一类算法的复习。
算法这个东西,就是不要害怕去编,哪怕自己只是有一点点理解,有好多点的模糊, 找一道基础的题, 对应着有一种思路解答的,去学习代码,学习里面的思路,并且自己动手跟着敲一敲,慢慢的就会理解了。 不用想着一开始就能够很彻底的理解算法的细节上思想。 理解的时候,从它所要达到的目的去思考, 知道它是要做...
分类:
其他好文 时间:
2014-07-08 15:57:51
阅读次数:
149
也是最小生成树问题。输出剩余组成生成树的边。
Special Judge 答案不唯一。
不过很奇怪的是Kruskal 写的话。
C++提交要么刚好1000ms 要么就是TLE。
然后G++提交就是594ms。顺便求路过大神指点。
已经有很多的生成边了,用prim可能用时会少一点。
#include
#include
#include
#include
#in...
分类:
其他好文 时间:
2014-07-06 09:22:50
阅读次数:
168
最小生成树问题。
Kruskal,如果已经有边就合并。
然后找最小。没有坑点。
G++ AC。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define INF 0x7fffffff
#define eps 1e-6
using n...
分类:
其他好文 时间:
2014-07-06 09:13:06
阅读次数:
205
最小生成树问题。
给你一组字母序列,问你最有可能的演变,也就是把所有的序列连通所花费最小。
每次派生的花费 取决于两个字符串上 不同的字母个数。
于是两两算出花费,然后Kruskal算最小。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#i...
分类:
其他好文 时间:
2014-07-06 00:32:05
阅读次数:
291
本题是求最小生成树。
给出的是坐标节点,然后需要根据这些坐标计算出各个点之间的距离。
除此就是标准的Prime算法了,能使用Prime的基本上都可以使用Kruskal。
这些经典的算法一定要多写,熟练掌握,否则很难灵活运用的。
而且经典的算法之所以为经典,原因之一是没那么容易自己凭空想象出来的,所以要熟练。
#include
#include
#include
#include ...
分类:
其他好文 时间:
2014-07-06 00:22:21
阅读次数:
338