随笔分类 -  最小生成树

摘要:2012-01-30 18:06:16|分类:程序|字号订阅在北京冬令营的时候,yby提到了“带花树开花”算法来解非二分图的最大匹配。于是,我打算看看这是个什么玩意。其实之前,我已经对这个算法了解了个大概,但是。。。真的不敢去写。有一个叫Galil Zvi的人(应该叫计算机科学家),写了篇论文:Efficient Algorithms for Finding Maximal Matching in Graphs(如果你在网上搜不到,可以:http://builtinclz.abcz8.com/art/2012/Galil%20Zvi.pdf)这篇论文真神啊,它解决了4个问题:(一般图+二分图) 阅读全文
posted @ 2013-08-23 17:04 一生挚爱 阅读(1001) 评论(0) 推荐(0)
摘要:#include#include#include#include#include#includeusing namespace std;int const oo = 100000000;int cost[103][103]; // 花费=边 int used[103][103]; // 表示这条边是否在生成树中 int father[103]; // 生成树中点的 int maxlen[103]; // 表示i点到根的路径上除了与根直接相连的边外,边权最大的边的边权。int vis[103]; // 标记 int d[103]; // 求最... 阅读全文
posted @ 2013-08-14 17:20 一生挚爱 阅读(277) 评论(0) 推荐(0)
摘要:=============== 分割线之下摘自Sasuke_SCUT的blog=============最 小树形图,就是给有向带权图中指定一个特殊的点root,求一棵以root为根的有向生成树T,并且T中所有边的总权值最小。最小树形图的第一个算法是 1965年朱永津和刘振宏提出的复杂度为O(VE)的算法。 判断是否存在树形图的方法很简单,只需要以v为根作一次图的遍历就可以了,所以下面的 算法中不再考虑树形图不存在的情况。 在所有操作开始之前,我们需要把图中所有的自环全都清除。很明显,自环是不可能在任何一个树形图上的。只有进 行了这步操作,总算法复杂度才真正能保证是O(VE)。 首先为除根之外 阅读全文
posted @ 2013-08-14 15:32 一生挚爱 阅读(405) 评论(0) 推荐(0)
摘要:题目意思:给出n个点,m条边,边分为两种,一种是A公司的,一种是B公司的。边上有权值,问用n-1条边把n个点连起来的最小费用是多少,其中A公司的边刚好有k条。题目保证有解。题解:题目意思很简单就是求MST且A公司要有且仅有k条边在树中,刚开始做的时候用贪心的方式求最小生成树结果WA,后来看了下别人的题解,二分出一个最大值delta使得A公司的边加上这个值后再求MST时A公司的边有大于等于k条,然后答案就是cost of MST - k * delta。思想就是用一个delta去逼近答案。当delta越大的时候A公司的边就越少,反之越多。所以二分delta可以找到使得A公司刚好取K条边的要求。# 阅读全文
posted @ 2013-07-28 21:11 一生挚爱 阅读(264) 评论(0) 推荐(0)
摘要:题目:http://acm.hdu.edu.cn/showproblem.php?pid=3371解题思路:题目要我们在已经有的一部分点相连的情况下求最小生成树。首先用并查集将所有城市分离成一个独立的点然后用已经存在的路去连接一部分点,使其构成一棵树,然后用Kruskal 算法 贪心求出最小生成树。实现代码如下:#include #include struct road { int x,y; int w; }a[25010]; int per[510]; int cmp(const void *a,const void *b) { if(((ro... 阅读全文
posted @ 2012-08-09 15:24 一生挚爱 阅读(170) 评论(0) 推荐(0)
摘要:题目:http://acm.hdu.edu.cn/showproblem.php?pid=1863最小生成树kruskal算法:http://www.zhuoda.org/irini/78592.html一开始看到题目的时候就知道是求最小生成树的题目,而且可以用并查集了构建树,但是不知道怎么将并查集和求最小生成树的算法结合起来,后来看到了最小生成树Kruskal算法是用贪心求最小生成树的,每次都都取权值最小的边去构建树,如果两点的祖先结点相同,及直接连通或者间接连通的时候则不再建边否则创建边使连点直接或间接连通。实现算法如下:#include#include#include#define MA 阅读全文
posted @ 2012-08-09 09:44 一生挚爱 阅读(199) 评论(0) 推荐(0)