
最小生成树
verdin黄大锤
afo啦!
展开
-
noip 2013 洛谷 P1967 货车运输
题目:货车运输大致题意: 给出一张无向带权图,对于m个询问(X,Y),要求找出X到Y的一条路径使得路径上的最小边权最大,并输出这个最小边权。思路: 可以看出,X到Y的满足条件的路径一定在原图的最大生成树上。 那么就可以用kruskal先预处理出原图的最大生成树,此时就可以用并查集判断出X到Y无路径的情况。 而找到这条路径,就可以采用倍增求LCA的方法。 即在倍增预处理anc[][...原创 2018-08-03 21:20:55 · 185 阅读 · 0 评论 -
洛谷 P1550 [USACO08OCT]打井Watering Hole
题目:打井思路: 现在图中加入一个节点0,并向1~n引出一条权值为wi的边。 这样就相当于默认在节点0打井了,在新图中求出最小生成树就好。代码:#include<bits/stdc++.h>using namespace std;#define maxn 300struct Edge{ int x,y,z; Edge(){} Edg...原创 2018-08-03 21:35:08 · 289 阅读 · 0 评论 -
洛谷 P2872 [USACO07DEC]道路建设Building Roads
题目:道路建设思路: 假设原来没有路径相连,那么就是求原图的最小生成树。 再回顾kruskal算法的加边过程,可以发现只用把原有的边的边权变为0,再求最小生成树时它们就一定会最先被添加了。代码:#include<bits/stdc++.h>using namespace std;#define maxn 1000#define db double#defi...原创 2018-08-03 21:41:21 · 254 阅读 · 0 评论 -
bzoj 2654 tree
题目:tree思路: 假设给所有百边加上一个值mid,此时刚好的最小生成树用了Need条百边,那么此时所求的解为s-mid*need,其中s为最小生成树大小。 此时二分mid即可。 只是不知道为什么代码比别人的长很多Orz……代码:#include<bits/stdc++.h>using namespace std;#define maxn 50000#def...原创 2018-08-15 18:16:06 · 148 阅读 · 0 评论 -
2018/11/02 膜你赛 设计迷宫
题目:题目描述长假过后,迷宫设计大师必须完成他的工作。旅游公司给他一张矩形的地图。地图由N*M个小方块组成。旅游公司将把一对夫妇放在迷宫中的两个不同的小方块上,让他们互相寻找。原本的地图上是空旷旷的一片,大师要做的就是在一些小方块之间建造一些墙从而把地图变成迷宫。建造的迷宫有一个条件,无论这对夫妻出现在何处,他们之间只有且仅有一条路。 这对他来说并不困难,但他是一个善解人意的人。他也知...原创 2018-11-03 18:56:46 · 349 阅读 · 0 评论 -
【模板·次小生成树】 The Unique MST
题目:The Unique MST代码:#include<cstdio>#include<vector>#include<cstring>#include<algorithm>using namespace std;#define maxn 100#define maxm 10000#define read(x) scanf("%...原创 2018-11-06 21:52:07 · 229 阅读 · 0 评论