建图(每次lev[i+1]到lev[i]连边,权是0,图中原来有边。root到lev0的有边。到达最高的点相当于必需到达所有点])之后,便是最小树形图(有向图,包括指定的根在内的最小生成树(从根出发))。
刘朱算法很好理解:
选取每个点入度最小的边加入边集。
缩点,改权。
取最小边集。
这考的比较少,就直接用模板了。。之前先自己dfs一遍,判断有无解。
模板用的是邻接矩阵的。之前必需对...
分类:
其他好文 时间:
2014-09-04 16:59:59
阅读次数:
204
package nyoj;import java.util.Scanner;public class Main { public static void main(String args[]) { //System.out.println(Integer.MAX_VALUE...
分类:
其他好文 时间:
2014-09-04 14:36:49
阅读次数:
187
算法模型: 由任意一个顶点开始 ,将此顶点存入S集, 剩余顶点存入T集合
每次遍历顶点, 取一条能够连接S与T最短边e, 直到所有顶点全部加入S
#include
#include
#define INF 1
int n,m,vis[110],low[110];
int map[110][110];
int init()
{
for(int...
分类:
其他好文 时间:
2014-09-04 11:49:49
阅读次数:
232
今天是个阴天,下了点雨,work .........步骤:将所有边排序,然后不断从小到大加上边,这个过程最重要的是避免环的产生,此处用并查集。(nyoj 38) 1 package 最小生成树; 2 3 import java.util.Arrays; 4 import java.util...
分类:
编程语言 时间:
2014-09-02 21:18:35
阅读次数:
248
地址:http://acm.hdu.edu.cn/showproblem.php?pid=1301很明显,这是一道“赤裸裸”的最小生成树的问题;我这里采用了Kruskal算法,当然用Prim算法也一样可以解题。#include #include #include #include using nam...
分类:
其他好文 时间:
2014-09-01 22:36:03
阅读次数:
223
求次小生成树的步骤是: 1、求出最小生成树MST,用一个矩阵maxe[u][v]记录在MST中连接u-v的路径中权值最大的边. 2、枚举所有不在T中的边u-v,加入边u-v,删除权值为max[u][v]的边,不断枚举找到次小生成树. 由于邻接矩阵建图无法储存平行边(重边),我们在建...
分类:
其他好文 时间:
2014-09-01 22:19:43
阅读次数:
272
最小生成树prim 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 8 const int INF = 99999999 ; 9 const int maxn = 105 ;1...
分类:
其他好文 时间:
2014-09-01 17:07:33
阅读次数:
133
最小生成树prim 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 8 const int INF = 99999999 ; 9 const int maxn = 105 ;1...
分类:
Web程序 时间:
2014-09-01 15:33:13
阅读次数:
207
题目大意:
给定一个无向图,每条边有两个权值ai和bi,从1走到N,设路径上a权的最大值为A,b权的最大值为B,求A+B的最小值
首先这题如果只有一个权值就是水题无误……但是多了个权值之后我们就要好好考虑一下了
我们对a排序,枚举a,对于每一次枚举求b权最大值的最小值即可
跑M遍SPFA肯定超时无误 网上很多人写了LInk-Cut-Tree维护动态最小生成树 我的LCT没写明白 就去写了S...
分类:
其他好文 时间:
2014-09-01 14:06:53
阅读次数:
1733
最小生成树 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 8 const int maxn=105; 9 10 int x[maxn],y[maxn];11 int v[ma...
分类:
其他好文 时间:
2014-09-01 12:28:53
阅读次数:
219