最小生成树
YYyyCCCcccBb
觉得为时已晚的时候,恰恰是最早的时候。
展开
-
最小生成树-POJ 1258 Agri-Net
题意: 给出的矩阵,找出一条最小生成树。模板题不多说了。 注意别忘记初始化。多组数据。WA了5发才发现。 #include #include #include using namespace std; int mp[105][105]; int n; int dis[105 ]; int vis[105]; int inf=9999999; void prim(int cur) {原创 2016-11-06 20:11:15 · 342 阅读 · 0 评论 -
1640 天气晴朗的魔法(二分最大生成树)
思路: 二分最大边值,跑最大生成树。stdio.h最后一个样例就0.5s。。cstdio偶尔1.12s #include #include #include #include #include #include using namespace std; const int maxn=100005; typedef long long ll; struct原创 2017-05-22 18:50:49 · 430 阅读 · 0 评论 -
poj3159-Candies差分约束-spfa+栈
题意: 飞天鼠是班长有好多糖果,有个管闲事的是1号,飞天鼠是n号 有m个输入a,b,c 表示A可以忍受B比他多拿C个糖果 问最终飞天鼠会比1号老鼠多拿多少结果 思路: 一开始我还以为是个问最多比最少的多重点问题,说什么也考虑不过去,然而看了下网上题意才明白只是一个单点的问题。之后写了一个spfa 的deque的优化。然而我突然发现,这deque也算个优化?偶尔比spfa裸的时间更长,缩原创 2016-11-26 16:38:27 · 311 阅读 · 0 评论 -
POJ 1789 Truck History
题意: 对于几个字符串,询问他们对应位置不同的个数作为他们的距离,询问遍历所有字符串,需要最小的权值 思路: 处理字符串之后,最小生成树模板一次过。注意数组2000!! #include #include #include #include #include #define inf 0x3f3f3f3f using namespace std; int n; int mp[200原创 2016-11-12 16:29:28 · 246 阅读 · 0 评论 -
POJ 3206 Borg Maze(bfs+prim)
题意: 每次从S点出发,可以一变二,分开走。问最少经过多少步可以遍历完所有的A点 思路: 之前做过一道bfs+dfs的题, bfs+dfs- poj2688-Cleaning Robot。 这道题也是一样。一眼看上去就感觉单纯搜索解,一定是无法解决的,因为会有往返,因此就先用bfs进行预处理,造成一个稠密图也就是最小到达点的步骤,然后基于此图构造最小生成树 #include原创 2016-11-11 12:11:58 · 298 阅读 · 0 评论 -
prim算法--prim算法求次小生成树--prim算法求限制K度生成树
在正常求次小生成树的时候相信大家都喜欢kruskal,毕竟因为太大的图,尤其是稀疏图,prim算法并不实用,而且占内存太多,有可能不让开。但是在解决次小生成树和限制度生成树时候prim算法不失为一种很好的方法,因为这两种情况空间复杂度,尤其是图的大小都并不太大。 从一开始学了prim算法,再到拿prim算法解决次小生成树的变形,直到今天彻底搞懂prim算法求解限制k度最小生成树的问题。我感觉无论原创 2016-11-10 15:26:14 · 1751 阅读 · 0 评论 -
次小生成树模板-prim算法
prim算法的次小生成树构造: 与原版求最小生成树的prim算法相比, 在求解次小生成树时加入了maxx这个数组,也是最为核心的一个,以及一个connect数组下面重点说一下这两个新的内容。 connect数组,标志这connect[i][j] 从i到j有边,(这个在输入的时候就可以处理),其次,我们在求解最小生成树时候index点,也是这步需要添加到已经遍历到树中的点。我原创 2016-11-08 17:11:49 · 2772 阅读 · 0 评论 -
限制度生成树
思路: 对于一个限制Vo点K度生成树的题来说,首先把他的Vo点所有的边都删除,对于其他的点进行初步prim建立多个最小生成树,并且存放最大边值,之后再对于这些最小生成树进行向Vo点连边。 国家集训队论文,讲得很好http://wenku.baidu.com/view/8abefb175f0e7cd1842536aa.html #include #include #include #i原创 2016-11-09 21:44:40 · 535 阅读 · 0 评论 -
POJ 1679-The Unique MST(次小生成树)
题意: 找出在给出的图中是否存在两个最小生成树,如果有输出不独立,否则如果只有一个就输出最小生成树的权值。 模板题: 最小生成树的模板 #include #include #include #include using namespace std; #define maxn 111 const int inf =0x3f3f3f3f; int maxx[maxn][maxn];原创 2016-11-08 16:57:05 · 363 阅读 · 0 评论 -
POJ-3723-Conscription最大生成树
题意: 男生女生有关系,如果以此关系雇佣这对男女就能少花val元钱。问最少能用多少元把他们都雇佣 (注意每次减价对于一个人来说只能凭借一种关系作用) 思路: 最大生成树,尽可能的减少花费 数组别开小了 #include #include #include #include #include using namespace std; int father[20005]; typ原创 2016-11-07 19:30:49 · 260 阅读 · 0 评论 -
hdu 5723 Abandoned country
题意: 求最短代价,以及任意两点距离期望 思路; 代价: 最小生成树。 期望: 以边为单位,边所用的次数是 左右断点度数*w #include #include #include #include using namespace std; const int maxn=5000005; struct node { int u,v,w; bool o原创 2017-07-21 18:51:13 · 228 阅读 · 0 评论