
最小生成树
ramay7
Life is not short,but float.
展开
-
POJ 1251 Jungle Roads(最小生成树)
题目链接: POJ 1251 Jungle Roads 题意: n个点,每个点有m条无向边,每条边有一个权值,求最少的路径权值和使得n个点连通。 分析: 最小生成树裸题。CODECODE:#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>using n原创 2016-03-17 18:18:16 · 359 阅读 · 0 评论 -
HDU 4756 Install Air Conditioning(树形dp+MST)
题目链接: HDU 4756 Install Air Conditioning 题意: 给nn个点的二维坐标,要将这nn个点连通,边权就是两点距离,其中00号节点是根,可能会破坏除根之外的任意两点的边(不能建边),要求将这nn个点连通的最坏代价? 数据范围:n≤1000n\leq 1000 分析: 上面的黑体字是因为原题中有这句话: But Tom200 is informe原创 2016-08-18 00:25:12 · 565 阅读 · 0 评论 -
POJ 3164 Command Network(最小树形图)
题目链接: POJ 3164 Command Network 题意: 给出n个点[下标从1–n]的坐标和m条单向边[i,j]表示可以从i点建一条边到j,权值是两点距离, 求将这n个点连通的最小边权和。如果无法连通输出”poor snoopy”,否则输出最小边权和。#include <iostream>#include <cstdio>#include <cstring>#include原创 2016-05-19 23:10:10 · 579 阅读 · 0 评论 -
HDU 1875 畅通工程再续(MST)
题目链接: HDU 1875 畅通工程再续 分析: 把不符合条件的边忽略再检查下所有点都连通就行了。//1676K 62MS#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>using namespace std;const int maxn=110;原创 2016-03-18 11:16:55 · 562 阅读 · 0 评论 -
HDU 1233 还是畅通工程(MST裸题)
题目链接: HDU 1233 还是畅通工程 分析: 最小生成树模版题。//1648K 296MS#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int maxn=110;const int INF=0x3f3f3f3f;int n,原创 2016-03-18 11:14:06 · 395 阅读 · 0 评论 -
POJ 1679 The Unique MST(判断MST是否唯一)
题目链接: POJ 1679 The Unique MST 题意: 判断最小生成树是否是唯一的。 分析: 最小生成树唯一:需要的边数最少并且总路径权值最小。 先生成一棵最小生成树,并把生成过程的各边记录下来, 然后依次去掉一条记录的边,再次生成最小生成树检查需要的边数和总路径权值和第一次的最小生成树是否完全一致。 如果完全一致,那么就最小生成树就不是唯一的, 否则每条记录的边都遍历原创 2016-03-18 11:12:00 · 454 阅读 · 0 评论 -
POJ 3026 Borg Maze (Prim Algorithm)
题目链接: POJ 3026 Borg Maze 题意: 有一个n行*m列的字符矩阵,A代表一个需要同化的点,S代表起始点,#代表障碍,不可通过,‘ ’空格是可行的。 从s开始需要同化所有的A,并且一个A被同化后也具有了同化其他A的能力。输入保证S可到达任意一个A。 问从s开始同化所有的A需要多少步? 分析: 将所有的A和S看成一个个点,也就是求将这些点连通的最小生成树。 然后问题就原创 2016-03-18 11:05:18 · 370 阅读 · 0 评论 -
POJ 1258 Agri-Net(Prim Algorithm)
题目链接: POJ 1258 Agri-Net 题意: 有n个点,并给出任意两点间的距离。求最小生成树路径和。 分析: Prim Algorithm//740K 16MS#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>using namespace原创 2016-03-18 11:02:54 · 302 阅读 · 0 评论 -
POJ 1751 Highways(Kruskal Algorithm)
题目链接: POJ 1751 Highways 题意: 有n个点需要修公路将这n个点连通,修公路里程越长,成本越高。已知有m条公路已经修好了的。 求出最少成本下,需要修哪些公路,将这些公路的起始点输出来。 分析: 最小生成树。将m条已经修好的公路用并查集合并下,再用Kruskal算法记录下修的公路起始点即可。 注意: 测试样例无需循环读入,直接scanf(“%d”,&n);即可,用w原创 2016-03-18 10:58:54 · 427 阅读 · 0 评论 -
POJ 2349 Arctic Network(Prim/Kruskal)
题目链接: POJ 2349 Arctic Network 题意: 有n个村庄,需要这些村庄实现两两通信(连通)。 有两种通信方式:卫星通信无视距离。无线电通信距离不超过D。 已知可提供p颗卫星,由于这些通信是统一样式的,而且D越大成本越高。为了让成本最小,求出最小的D。 分析: 可提供p颗卫星,每个村庄使用一颗,也就是有p-1条边是不需要考虑的。 又因为将n个点连通,需要最少n-1原创 2016-03-18 10:54:22 · 353 阅读 · 0 评论 -
POJ 1789 Truck History (Prim Algorithm)
题目链接: POJ 1789 Truck History 题意: n个7个字符串的点,两点之间的权值是两个字符串相同位置上相异字符数。 由于要求的是把这n个点连通1/权值和的最大值,所以也就是求权值和的最小值(最小生成树) 分析: Prim算法。两点间权值按照题意自己建立然后套用模版就行了。 CODE:CODE://16196K 485MS#include <iostream>#原创 2016-03-18 10:50:29 · 375 阅读 · 0 评论 -
ZOJ 1586 QS Network(最小生成树)
题目链接: ZOJ 1586 QS Network 题意: 题目比较难懂。有n个点,每个点有一个权值,然后给出这n个点两两之间边的权值, 但是如果a和b直接连通的话总共的权值是边的权值加上a,b两点的权值。 问将这n个点全部连通的最小权值和。 分析: 在读边的时候只需要将边的权值重新考虑下:i->j:if(i!=j) w+=val[i]+val[j]; 然后直接用Kruskal就行了原创 2016-03-18 10:47:16 · 362 阅读 · 0 评论 -
POJ 2421 Constructing Roads(并查集+最小生成树)
题目链接:POJ 2421 Constructing Roads 题意: 给出n个点两两之间的权值,然后有m对a,b,表示a,b已经连通了。 问将这n个点都连通最少权值和是多少。 分析: 将m对已连通的点对用并查集合并,然后用Kruskal算法即可。 CODECODE://804K 47MS#include <iostream>#include <cstdio>#include <原创 2016-03-18 10:43:36 · 553 阅读 · 0 评论 -
POJ 2031 Building a Space Station(最小生成树)
题目链接: POJ 2031 Building a Space Station 题意: 给定一些球的圆心与半径,如果两个球之间相交,则他们之间连通, 否则不连通,问还需要连多长的边使所有球都连通 分析:任意两个球,如果连通则边权为0, 否则边权为d-r1-r2,d是两球圆心坐标之间的距离,r1与r2分别为两个球的半径, 这样求一个最小生成树,将所有球连接起来 注意: 数据doubl原创 2016-03-17 18:24:10 · 408 阅读 · 0 评论 -
POJ 1287 Networking(最小生成树)
题目链接: POJ 1287 Networking 分析: 裸题。CODECODE:#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>using namespace std;const int maxn=55;int n,m,uu,vv,ww,ans;i原创 2016-03-17 18:21:15 · 428 阅读 · 0 评论 -
HDU 4126 Genghis Khan the Conqueror(树形dp,MST,破坏原有最小生成树边后的最小生成树代价)
题目链接: HDU 4126 Genghis Khan the Conqueror 题意: 给nn个点和mm条无向边,需要将这nn个点连通。但是有QQ次破坏,每次破坏会把mm条边中的某条边的权值增大,求QQ次破坏每次将nn个点连通的代价的期望?(每次破坏后的最小生成树的代价累加除以QQ) 数据范围:n≤3000,Q≤104,单边权≤107,总边权≤109n\leq 3000,Q\leq原创 2016-08-18 00:14:25 · 1018 阅读 · 0 评论