
ACM_最小生成树
文章平均质量分 68
SmallKind
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
hdu 1863 畅通工程
链接:点击打开链接模板题。。。#include#include#define MAX 100000int edges[101][101];int vexset[101];int lowcost[101];int m,i,j;void prim(int v){ int k,h=0,min,sum; for(i=2;i<=m;i++) { lowcost[i]原创 2013-04-23 18:24:05 · 344 阅读 · 0 评论 -
hdu 3367 Pseudoforest
链接:点击打开链接求图的权值最大并且一个环的子图。最大生成树,但又与最大生成树有点不同,这也可以有一个环的出现。所以我们要加个标记数组,当查找的两个点,父亲节点不同,并且只有一个有环,或者都没有环,就把权值相加,然后合并。如果相同,但没环,也把权值相加。最后得出的就是有一个环的最大生成树。#include#include#include#includeusing namespa原创 2013-08-18 12:05:58 · 500 阅读 · 0 评论 -
poj 1258 Agri-Net
链接:点击打开链接prim模板题,求联通的最小距离。#include#include#include#include#includeusing namespace std;const int INF=0xffffff;int edge[110][110];int nn,vis[110];void prime(int x){ int i,j,k; int sum_i,m原创 2013-08-18 12:07:46 · 403 阅读 · 0 评论 -
poj 2075 Tangled in Cables
链接:点击打开链接给n个房子,你需要在房子之间铺电缆,使所有的房子都连上,求最短的电缆,#include#include#include#include#includeusing namespace std;const float INF=0xffffff;float edge[510][510],len;int nn,vis[510];void prime(int x)原创 2013-08-18 12:13:54 · 473 阅读 · 0 评论 -
hdu 2988 Dark roads
链接:点击打开链接就是说每天街每天开路灯,非常耗钱,想省钱,但又不想让市民觉得不安全,就两条相连的街开个路灯,求每晚能省多少钱,首先给个N,M,代表N条街,M条路,接下来N行,每一行三个数X,Y,Z,代表X街与Y街相连,每天消耗Z元,由于边很多,所以用Kruskal,用边的总权值减去Kruskal求出来的最小权值就是每天省下的钱。#include#include#include#in原创 2013-08-17 18:29:57 · 659 阅读 · 0 评论 -
hdu 1162 Eddy's picture
链接:点击打开链接给你点的横坐标,纵坐标,让你找一条最短的路把这些点连起来。#include#include#include#includeusing namespace std;const double INF=0xffffff;double edge[105][105];int nn,vis[105];void prime(int x){ int i,j,k; do原创 2013-08-17 15:55:58 · 521 阅读 · 0 评论 -
hdu 3371 Connect the Cities
链接:点击打开链接连接城市,给你M个城市,有M条道路,还有K个城市相连,接下来M行,P与Q城市相连花费C,然后接下来K行,首先有一个数T,代表有T个城市相连,然后给胡相连城市的ID。简单的prim,不过用C++提交可以过,但用G++,就会超时,不超时要自己写一个scanf函数。#include#include#include#include#includeusing name原创 2013-08-17 15:50:57 · 396 阅读 · 0 评论 -
poj 3026 Borg Maze
链接:点击打开链接参考链接:点击打开链接一个m*n的迷宫,#代表墙,空格代表数字,S是起点,里面有一些字母A,从起点开始找出一条最短路使这些字母链接起来。首先就要想到prim,因为求链接这些字母的最短距离,不就是一个赤裸裸的最小生成树吗,但是字母与字母的距离我们不知道,所以需要用BFS,把这些字母之间的距离搜出来,基本这道题就是这样做啦。注意:6 5 #原创 2013-08-22 13:42:04 · 516 阅读 · 0 评论 -
poj 1789 Truck History
链接:点击打开链接用一个7位的string代表一个编号,两个编号之间的distance代表这两个编号之间不同字母的个数。一个编号只能由另一个编号“衍生”出来,代价是这两个编号之间相应的distance,现在要找出一个“衍生”方案,使得总代价最小,也就是distance之和最小。#include#include#include#includeusing namespace std;原创 2013-08-20 14:18:42 · 428 阅读 · 0 评论 -
poj 2031 Building a Space Station
链接:点击打开链接给你一些圆的圆心坐标和半径,如果两个圆相交,那么这两个圆就是联通的,如果不相交,就需要一条直线连接两个圆,让你求出使这些圆联通的最短的直线长度。#include#include#include#includeusing namespace std;#define INF 0x7f7f7f7fstruct node{ double x,y,z,r;}ano原创 2013-08-20 13:03:06 · 451 阅读 · 0 评论 -
poj 1679 The Unique MST
链接:点击打开链接题意是:求最小生成树,若不唯一则输出'Not Unique!'.。否则输出那个最小权值和。用prime算法,设一个v[]数组,初值0;每次找到的点的放进集合中厚v[i]为1;若找到的集合到外面的最小边有多条(即外面有多个点到集合的最小距离都等于该最小距离)时把其中一条放进去,其他的v[]值为3,记录该点以后一定要以此边进入集合。否则不唯一。另外,集合有多个点到到一个点的距离都原创 2013-08-19 12:40:58 · 395 阅读 · 0 评论 -
hdu 1102 Constructing Roads
#include#includeusing namespace std;#define INF 10000000int edges[105][105],vexset[105],lowcost[105];int n;void prim(int v){ int i,j,min,k,sum; for(i=2;i<=n;i++) { lowcost[i]=edges[v][原创 2013-04-23 18:20:51 · 393 阅读 · 0 评论 -
hdu 1879 继续畅通工程
模板题。。链接:点击打开链接#include#includeusing namespace std;#define INF 9999999int edges[101][101],lowcost[101],vexset[101];int sum,n;void prim(int v){ int i,j,k,min; for(i=2;in;i++) { l原创 2013-04-23 17:55:05 · 351 阅读 · 0 评论 -
hdu 1301 Jungle Roads
链接:点击打开链接#include#includeusing namespace std;#define INF 10000000int edges[105][105],vexset[105],lowcost[105];int n;void prim(int v){ int i,j,min,k,sum; for(i=2;i<=n;i++) { lowcost原创 2013-04-23 18:12:44 · 382 阅读 · 0 评论 -
poj 2253 Frogger
链接:点击打开链接题意:就是一个青蛙想找另外一个青蛙,但是一下他跳不到那里去,所以需要借助其他石头,找出跳到另外一个青蛙的总最小距离,在从中找出跳一次的最小距离。输出这个JUMP的最小距离呢。因为prim每次找的都是从这点找最小的距离跳的,所以每次记录这个最小距离,然后与下一次比较,直到跳到另外一个青蛙的石头上为止。#include#include#include#includeu原创 2013-08-18 12:25:22 · 420 阅读 · 0 评论