图论-最小生成树
LYoGa
这个作者很懒,什么都没留下…
展开
-
Kruskal
鲁斯卡尔(Kruskal)算法(只与边相关)算法描述:克鲁斯卡尔算法需要对图的边进行访问,所以克鲁斯卡尔算法的时间复杂度只和边又关系,可以证明其时间复杂度为O(eloge)。算法过程:1.将图各边按照权值进行排序2.将图遍历一次,找出权值最小的边,(条件:此次找出的边不能和已加入最小生成树集合的边构成环),若符合条件,则加入最小生成树的集合中。不符合条件转载 2014-02-25 21:09:23 · 713 阅读 · 0 评论 -
Prime
普利姆(Prime)算法(只与顶点相关) 算法描述:普利姆算法求最小生成树时候,和边数无关,只和定点的数量相关,所以适合求稠密网的最小生成树,时间复杂度为O(n*n)。算法过程:1.将一个图的顶点分为两部分,一部分是最小生成树中的结点(A集合),另一部分是未处理的结点(B集合)。2.首先选择一个结点,将这个结点加入A中,然后,对集合A中的顶点遍历,找转载 2014-02-25 21:10:30 · 589 阅读 · 0 评论 -
UVA10369- Arctic Network
#include #include #include #include #include #define N 250005using namespace std;struct state{ int l, r; double value;}s[N];int n, m, cnt, f[N], x[N], y[N];double ans;bool cmp(c原创 2014-04-14 16:24:21 · 549 阅读 · 0 评论 -
UVA10099- The Tourist Guide
#include #include #include #include #define N 10005using namespace std;struct state{ int l, r, value;}s[N];int n, m, k, t, d, ans1, ans2;int f[N];bool cmp(const state& a, const state原创 2014-04-14 16:21:45 · 620 阅读 · 0 评论 -
UVA10048- Audiophobia
#include #include #include #include #define N 10005using namespace std;struct state{ int l, r, value;}s[N];int n, m, f[N];int getFather(int x) { return x == f[x] ? x : f[x] = getF原创 2014-04-14 16:17:19 · 538 阅读 · 0 评论 -
UVA10397- Connect the Campus
#include #include #include #include #include #define N 600005using namespace std;struct state{ int l, r; double value; }s[N];int n, m, cnt, f[N], x[N], y[N];double sum;bool cmp原创 2014-04-14 16:28:49 · 527 阅读 · 0 评论 -
POJ2377
#include #include #include #include #define N 100005using namespace std;struct state{ int l, r, value;}s[N];int n, m, cnt;int f[N], sum;bool cmp(const state& a, const state& b) {原创 2014-04-14 16:30:29 · 624 阅读 · 0 评论