Kruskal算法: ①用并查集实现 ②构造一个只含 n 个顶点,边集为空的子图,把子图中各个顶点看成各棵树上的根结点 ③sort()排序升序,依次从边集 E 中选取一条权值最小的边,如果该条边的两个顶点分属不同的树,则把两棵树合成一棵树。若该条边的两个顶点已落在同一棵树上,跳过,取下一条权值最小的 ...
分类:
其他好文 时间:
2020-01-14 23:39:46
阅读次数:
75
题解:求最小生成树的最大权值边 ①n<=50000,用二维数组会编译出错,开不了50000*50000这么大的数组 ②用Vector+优先队列 优化Prim即可得正解,一定要用优先队列优化,否则会超时! ③可以用struct Node,也可以用Pair优化 #include <stdio.h> #i ...
分类:
其他好文 时间:
2020-01-14 21:05:09
阅读次数:
113
题目描述 根据输入创建无向网。分别用Prim算法和Kruskal算法构建最小生成树。(假设:输入数据的最小生成树唯一。) 输入 顶点数n n个顶点 边数m m条边信息,格式为:顶点1 顶点2 权值 Prim算法的起点v 输出 输出最小生成树的权值之和 对两种算法,按树的生长顺序,输出边信息(Krus ...
分类:
其他好文 时间:
2020-01-11 22:07:12
阅读次数:
121
"题目链接" 之前没看懂题意就把这题扔了,现在一看是读错题意了 简化版题意 给出一颗树(这个图的最短路径生成树),每个点初始颜色为$0$ 两种操作: 1. 将部分点颜色取反 2. 给出一些点,建出虚树(边权为两点树上距离),求最小割边代价使得虚树上没有颜色为$1$的点与根联通 那这就很模板了: 设$ ...
分类:
其他好文 时间:
2020-01-09 22:42:29
阅读次数:
125
Prufer序列 Prufer 序列可以将一个带标号$n$个结点的无根树用$n 2$个$[1,n]$的整数表示。也可以理解为完全图的生成树与数列之间的双射。 带标号无根树与$Prufer$序列是一一对应的。 无根树转Prufer序列 有一棵带标号无根树。它的$Prufer$序列构造如下: 每次选择一 ...
分类:
其他好文 时间:
2020-01-08 00:16:59
阅读次数:
112
11.5最小生成树(Minimum Spanning Trees) 对加权图求使得权值和最小的生成树,即为最小生成树,基于以点为基准和以边为基准,有两种求最小生成树的方法:Prim算法和Kruskal "最小生成树的具体算法实现" ...
分类:
其他好文 时间:
2020-01-05 00:45:27
阅读次数:
100
题目 分析: 老规矩,遇到期望要准备好随时投降。。。 大致想到了按位处理,然后分别下去搜索,再用组合数加加减减一下。。。 但是两个连通块之间连边的期望怎么算呢? 很好,投降。。。 下来看题解。。。 果然是记搜。。 首先我们设F(n,m)表示n个点取 [ 0 , 2^m )的值时所有最小生成树代价之和 ...
分类:
其他好文 时间:
2020-01-04 18:50:28
阅读次数:
66
关于图的几个概念定义: 连通图:在无向图中,若任意两个顶点vivi与vjvj都有路径相通,则称该无向图为连通图。 强连通图:在有向图中,若任意两个顶点vivi与vjvj都有路径相通,则称该有向图为强连通图。 连通网:在连通图中,若图的边具有一定的意义,每一条边都对应着一个数,称为权;权代表着连接连个 ...
分类:
编程语言 时间:
2020-01-04 16:31:27
阅读次数:
88
原文地址:https://www.cnblogs.com/newlangwen/p/9969904.html Tree 结构 Tree递归 5个方法实现递归树形结构 逻辑: 构建树形结构 —— 获取树形根菜单 —— 根据树形根菜单获取子菜单(递归调用) ...
分类:
其他好文 时间:
2020-01-03 14:12:28
阅读次数:
67
"T1圆圈游戏" 暴力DP有60分,设包含圆i的最小的圆是fa[i],那没最终会的得到一棵树,对于一棵子树,选了根节点就不能选子树内其它点,f[i]=max(w[i],$\sum f[son]$). 瓶颈就在怎么建图,因为圆不相交相切,所以扫描线的时候相对位置不会发生改变,用set维护一下就好啦。 ...
分类:
其他好文 时间:
2020-01-02 22:39:08
阅读次数:
87