最小生成树
圣人惠
这个作者很懒,什么都没留下…
展开
-
UVALive - 5713 Qin Shi Huang's National Road System
prim + 邻接矩阵储存两点间最大距离,然后枚举即可。#include<iostream>#include<string>#include<cstdio>#include<set>#include<map>#include<stack>#include<list>#include<vector>#include<queue>#include<algorithm>#include原创 2017-05-05 22:30:38 · 191 阅读 · 0 评论 -
UVA - 12275 Sensor network
和UVA - 1395有点相似,都是求最大边权和最小边权的差值。不过这里的边数要多得多,枚举边权会超时。 所以这里用的方法是最小生成树建完之后开始添边,添一条边就会形成一个环,找到环中最小的边删除。#include<iostream>#include<string>#include<cstdio>#include<set>#include<stack>#include<list>#in原创 2017-05-05 23:01:55 · 264 阅读 · 0 评论 -
UVA - 1265 Tour Belt
最小生成树。每次加一条边之后判断一下集合是否符合条件即可。#include<iostream>#include<string>#include<cstdio>#include<set>#include<stack>#include<list>#include<vector>#include<queue>#include<algorithm>#include<cstring>#in原创 2017-05-05 22:49:35 · 240 阅读 · 0 评论 -
UVA - 10816 Travel in Desert
由于要同时满足两个条件,优先满足温度最低,其次是距离最短。 于是按照温度建最小生成树,然后把低于最高温度的边都加进来,spfa找距离最短的路线就可以了。#include<iostream>#include<string>#include<cstdio>#include<set>#include<stack>#include<list>#include<vector>#include<原创 2017-05-05 22:46:33 · 235 阅读 · 0 评论 -
UVA - 10369 Arctic Network
一棵只需要n-m条边的最小生成树#include<iostream>#include<string>#include<cstdio>#include<set>#include<stack>#include<list>#include<vector>#include<queue>#include<algorithm>#include<cstring>#include<cmath>原创 2017-05-05 22:48:08 · 200 阅读 · 0 评论 -
UVA - 10600 ACM Contest and Blackout
单纯的次小生成树 这里是先建最小生成树,然后依次不用最小生成树的某一条边再建最小生成树,得到的最小值就是次小生成树。 这个写法比较简单易懂,但是时间会消耗的比较多。还有一种方式是建完最小生成树之后删一条边,这样就会得到两棵子树,然后找一条能够连接两棵树的边加进来就可以了。我在UVA - 1504里运用到了这种做法的变种,不过这道题用的是上面那个写法。#include<iostream>#inc原创 2017-05-05 22:42:06 · 210 阅读 · 0 评论 -
UVA - 11183 Teen Girl Squad
最小树形图,朱刘算法 可以看一下这个: http://blog.csdn.net/wsniyufang/article/details/6747392#include<iostream>#include<string>#include<cstdio>#include<set>#include<stack>#include<list>#include<vector>#include<原创 2017-05-05 22:44:40 · 291 阅读 · 0 评论 -
UVA - 1395 Slim Span
枚举最小的边权,用剩下来的边建最小生成树即可#include<iostream>#include<string>#include<cstdio>#include<set>#include<map>#include<stack>#include<list>#include<vector>#include<queue>#include<algorithm>#include<cstri原创 2017-05-05 22:37:54 · 199 阅读 · 0 评论 -
UVA - 11865 Stream My Contest
二分找最小的带宽,然后最小树形图求cost#include<iostream>#include<string>#include<cstdio>#include<set>#include<map>#include<stack>#include<list>#include<vector>#include<queue>#include<algorithm>#include<cstrin原创 2017-05-05 22:34:37 · 220 阅读 · 0 评论 -
UVA - 11354 Bond
由于点数比较多,没法用邻接矩阵,所以不能用prim了 这里使用kruskal+LCA来找最大值#include<iostream>#include<string>#include<cstdio>#include<set>#include<map>#include<stack>#include<list>#include<vector>#include<queue>#include原创 2017-05-05 22:32:28 · 160 阅读 · 0 评论 -
UVA - 1504 Genghis Khan the Conqueror
如果修改边权的边如果不是组成最小生成树的边,那么肯定不会有影响。 那么对于其他的边来说,就把它删了然后找到最短的替代边,和原树+修改的边权中选小的那个即可。 其实就是次小生成树的变种,只是保存每一条边删除以后的最小值罢了。#include<iostream>#include<string>#include<cstdio>#include<set>#include<stack>#incl原创 2017-05-05 23:05:07 · 356 阅读 · 0 评论