![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图论_最小生成树
hxc2101
这个作者很懒,什么都没留下…
展开
-
hdu1102 (prim模板题)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1102 题意:有n个村庄需要修路使其连通,其中部分村落之间已经有路了,给出每两个村落之间修路的费用,求最小花费。 思路:给出的的数据就是临界矩阵的形式,考虑到了矩阵上无向图的"对称性",直接输入到d[][]即可,对于已修路的村庄,缩成一点,遍历一下,是他们到其他村庄的代价花费取两者最小值即可。剩下的就是...原创 2018-08-22 08:50:29 · 254 阅读 · 0 评论 -
kruskal模板 (最短路)
运行时注意编译不通过的那几行中的注释,与题目有关 做题以后可以再留意一下注释 + sort 边的时间 : //并查集 int pre[maxn],rnk[maxn]; //要的是结点数的范围 inline void init(int n) {for(int i=0;i<=n;i++) pre[i]=i,rnk[i]=0;} //注意这里可能 会需要改一下 i 的范围 inline...原创 2018-08-23 01:53:59 · 238 阅读 · 0 评论 -
hdu 3371 (kruskal模板题)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=3371 题意:有n个城市,m条边,k个城市群(已经连通),求最少花费多少使所有城市都连通。 #include <bits/stdc++.h> #pragma GCC optimize(3) //#pragma GCC optimize("unroll-loops") //#pragma c...原创 2018-08-23 02:06:56 · 180 阅读 · 0 评论 -
hdu 4313 Matrix (kruskal模板题,cmp倒着取边)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4313 题意:有n个城市,有n-1条边连通,其中的k个城市有破坏机器,要求切断部分路,使得这k个城市之间不能连通,每条路对应不同的花费时间,求最少花费。 思路:以含“破坏机器”的城市作为根结点,分为k棵树,每加入一条边,判断该边的两个端点所对应的祖先是不是都含“机器”,若都含不连这条边直接在ans上加,...原创 2018-08-27 10:59:00 · 161 阅读 · 0 评论 -
最小生成树讲解 (Kruskal和Prim算法)
转自:勿在浮沙筑高台http://blog.csdn.net/luoshixian099/article/details/51908175 关于图的几个概念定义: 连通图:在无向图中,若任意两个顶点与都有路径相通,则称该无向图为连通图。 强连通图:在有向图中,若任意两个顶点与都有路径相通,则称该有向图为强连通图。 连通网:在连通图中,若图的边具有一定的意义,每一条边都对应着一个数,称为权;...转载 2018-08-21 13:29:19 · 323 阅读 · 0 评论 -
prim模板 (最短路)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1301 1.三步初始化!!! 2.注意 原先的图是否是连通的 若可能不连通需要判断 if(p==-1) 或 if(mi==inf) 的情况 /* d[][]邻接矩阵 必须初始化为inf: memset(d,0x3f,sizeof(d))(inf每个字节都是0x3f) lw[] 集合外的点i 到集...原创 2018-08-21 15:45:07 · 385 阅读 · 0 评论