图的深度优先遍历 和 广度 优先 遍历 算法中的 每一次 最外层 循环 都 产生 一个 无向图 的 连通分量,每一个连通分量,都可以产生一个生成树,将这些生成树合在 一起 就是 一个 森林。 用 树的 孩子 兄弟 链表 表示法 来 表示 这个 森林, 就是 这一节 算法的 内容。
深度优先森林 代码 :
//深度优先生成森林
void dfsTree(AMLGraph g,int i,Tre...
分类:
其他好文 时间:
2015-04-12 09:13:11
阅读次数:
124
这是最小度限制生成树的经典问题,题意就不说了
题目链接:http://poj.org/problem?id=1639
一般都是1个顶点的度有限制k,如果每个顶点的度都有限制,那么当前是NP难的。
为了解决这个题目,先把限制度数的点设为V0点,那么把这一点先除外,那么剩下的点都没有度数限制,所有先对他们进行分析,把他们求生成森林后,假设得到t个连通分量,所以为了生成一棵把v0包含在内的树,必须...
分类:
其他好文 时间:
2015-02-12 09:22:52
阅读次数:
180
题目链接:http://poj.org/problem?id=3723
题意需要征募男兵M人,女兵N人,每征募一个人需要10000元,但是已经征募 的人中有和待征募的人关系密切的可以少花点钱,求通过适当的顺序使得征募所有人所需的费用最小。
思路:这是二分图的背景,是陷阱,没用,征募a动用了a和b关系,那么(a,b)连成一条边,虽然这条边是有向的,但是不管是谁先征募最后的结果都相同所以是无向图的...
分类:
其他好文 时间:
2015-02-11 22:04:12
阅读次数:
232
题目大意:给定平面上的n个点,要求将这n个点划分为k个集合,使划分后任意两个集合中最近两点的距离的最大值最小,输出这个最小值
考虑这n个点之间所有的连边 我们要让长边保留 就尽量选取短边链接
于是就是求加入n-k条边的最小生成森林 由于输出下一个最小值 因此Kruskal加入第n-k+1条边时输出边权即可
#include
#include
#include
#include
#in...
分类:
Web程序 时间:
2014-12-30 20:44:55
阅读次数:
231
是否有环往往很大程度上影响着一道关于图的问题。
描述 Description(Time Limit: 1s ; Memory Limit 128MB)
有n个炸弹,有些炸弹牵了一根单向引线(也就是说引线只有在这一端能被炸弹点燃),只要引爆了这个炸弹,用引线连接的下一个炸弹也会爆炸。每个炸弹还有个得分,当这个炸弹被引爆后就能得到相应得分。
现在要你引爆k个炸弹,使得分最大。
输入格式 I...
分类:
其他好文 时间:
2014-10-27 09:26:10
阅读次数:
174