什么是最小树形图?相信大家如果会过来看这篇文章,想必也应该对最小生成树有所了解的,最小生成树求的是无向图的一颗生成树的最小权值。我们的最小树形图就是来解决一个有向图的一颗生成树的最小权值,对于度娘来说,最小树形图是这样定义的:最小树形图,就是给有向带权图中指定一个特殊的点root,求一棵以root为根的有向生成树T,并且T中所有边的总权值最小。
通解最小树形图的一种算法是是1965年朱永津和刘振...
分类:
编程语言 时间:
2016-04-29 15:50:18
阅读次数:
210
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2121 题目意思大概是要你在一些城市中选一个做首都 , 要求首都都能到其他城市 , 道路花费要最少 , 且道路都是单向的 , 这个时候就要用到最小树形图算法了 , 而且是不固定根. 不定根就是加一...
分类:
编程语言 时间:
2015-12-01 23:02:41
阅读次数:
272
题目大意:给一张无向图,求出最小树形图。题目分析:套朱-刘算法模板就行了。。。代码如下:# include# include# include# includeusing namespace std;# define LL long long# define REP(i,s,n) for(int i...
分类:
编程语言 时间:
2015-11-01 19:22:57
阅读次数:
266
题目大意:有一张n个顶点,m条边的有向图,根节点为0。每条边有两个权值,一个是费用c,一个是长度b。问在总费用不超过cost的情况下选出若干条边,使得n个点连通时的边的最短长度的最大值是多少。题目分析:如果已知这个最短距离的最大值d,则问题就变成了:用长度不小于d的边能否构成一个总权值不大于cost...
分类:
编程语言 时间:
2015-10-27 23:49:44
阅读次数:
284
最小树形图就是一个有向图,从根节点可以到达其他所有节点,而除根节点外的每个节点又有且仅有一个父节点,这样一张边权和最小的图就是最小树形图。最小树形图有它特有的算法,朱刘算法。原理是先对除根节点以外的所有节点先找寻一条最小入边,接着判图中是否有有向环,如果有,将每个环缩成一点,再对这些点重新找最小入边...
分类:
编程语言 时间:
2015-09-15 19:55:06
阅读次数:
206
Command Network
Time Limit: 1000MS
Memory Limit: 131072K
Total Submissions: 14782
Accepted: 4249
Description
After a long lasting war on words, a war on arms finall...
分类:
编程语言 时间:
2015-08-26 12:13:20
阅读次数:
216
定义:一个有向图,存在从某个点为根的,可以到达所有点的一个最小生成树,则它就是最小树形图。
朱刘算法实现过程: 【在选出入边集后(看步骤1),若有向图中不存在有向环,说明该图就是最小树形图】
1,选入边集——找到除root点之外,每一个点的所有入边中权值最小的,用数组in[]记录下这个最小权值,用pre[]记录到达该点的前驱;(若图中存在独立点,最小树形图是不存在的,所...
分类:
编程语言 时间:
2015-08-26 09:32:01
阅读次数:
202
题目大意:有N个点,M条有向边。现在要求你以1为根,构造出一棵最小生成树,问这棵最小生成树能否被构造出来,如果可以,总权值是多少解题思路:朱刘算法的裸题,我只想吐槽一下POJ,用的是double型的,输出时是%.2lf,结果是WA
换成了%.2f就A了。。这什么情况,白白花费了1个多小时去调错。。#include
#include
#include <cmat...
分类:
编程语言 时间:
2015-08-17 01:06:03
阅读次数:
153
题目大意:给你N个点,M条有向边,问以哪个点为根结点时,能使最小生成树总权值达到最小,输出总权值和根。
如果构不成最小生成树,另外输出解题思路:这题很巧妙,暴力枚举的话,肯定TLE,所以,这题就需要点技巧了
可以设一个虚根,虚根连接每一个点,权值为所有边的总权值+1。接着,以虚根为根,跑朱刘算法。
跑出结果后,要判断一下,如果最小生成树的总权值比2 * (所有边的总权值+1)还要大,表示虚根至...
分类:
编程语言 时间:
2015-08-17 01:03:01
阅读次数:
167
朱刘算法模板题#include #include #include #include #include #define INF 1>nod[i].x>>nod[i].y; } double ans=solve() ; if(ans == -1){ ...
分类:
编程语言 时间:
2015-08-07 22:14:39
阅读次数:
139