随笔分类 -  图论——生成树

摘要:题目链接:https://www.luogu.com.cn/problem/P1991 解法:选择S个点,使得另外的P-S个点到这S个点构成的联通分量U的最大距离最小。我们可以考虑最小生成树的最大边,可以证明最小生成树的最大边一定在U中,否则最大值就是该边长度,之后我们可以迭代地将最小生成树的次大边 阅读全文
posted @ 2020-03-26 11:50 WA自动机~ 阅读(141) 评论(0) 推荐(0)
摘要:题目链接:https://www.luogu.com.cn/problem/P1265 最小生成树的prim算法跟dijkstra算法非常像,就是将点分成两个集合,一个是已经在生成树中的点的集合,一个是还未加入生成树的点的集合。最初选择一个点进入集合{V1},然后从{V}-{V1}点集中选择到{V1 阅读全文
posted @ 2020-03-25 23:47 WA自动机~ 阅读(176) 评论(0) 推荐(0)
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1301 将结点的字符信息处理成点信息即可,代码如下: 1 #include<bits/stdc++.h> 2 using namespace std; 3 typedef unsigned int ui; 阅读全文
posted @ 2020-03-25 22:53 WA自动机~ 阅读(157) 评论(0) 推荐(0)
摘要:题目链接:https://www.luogu.com.cn/problem/P2212 几乎是Kruskal裸题,但是建n*(n-1)条边给我T了俩点,后来我发现只要C(n,2)条边就可以,因为假设(vi,vj)和(vj,vi)之间有边,但是其中一条没用到则另外一条也用不到,因为他们一样长,如果其中 阅读全文
posted @ 2020-03-25 17:25 WA自动机~ 阅读(180) 评论(0) 推荐(0)
摘要:Prime算法的思路:从任何一个顶点开始,将这个顶点作为最小生成树的子树,通过逐步为该子树添加边直到所有的顶点都在树中为止。其中添加边的策略是每次选择外界到该子树的最短的边添加到树中(前提是无回路)。 Prime算法的正确性证明: 引理1:对于连通图中的顶点vi,与它相连的所有边中的最短边一定是属于 阅读全文
posted @ 2020-03-24 20:58 WA自动机~ 阅读(1915) 评论(0) 推荐(0)