
最小生成树
文章平均质量分 94
ITCharge
高效率编程,慢节奏生活。
展开
-
HDU2122 Ice_cream’s world III【Kruskal】
题目大意:给你N个点(编号为0~N-1),M条路,问最小生成树是多少,如果不能生成最 小生成树,则输出impossible 思路:用Kruskal来做,如果最后得不到N-1条路,就输出impossible,否则就输出结果。原创 2015-01-19 23:07:24 · 1241 阅读 · 0 评论 -
HDU3371 Connect the Cities【Kruskal】
题目大意:首先是T组数据,之后每组第一行是N M K,表示N个城市,M条路的信息,和 已经连接上的K个城市信息。接下来M行每行是城市A到B建路需要的花费。再接下来K行每 行第一个数为t,之后t个数表示已经连接在一起的城市。简单说,就是给你N个城市和M条 路的花费,再给你已经联通的城市,求连接所有城市的最小生成树总权值是多少。 思路:用kruskal算法来做,先把联通的城市并入集合,再依次并入边权值最小的边,直到 并到N-1条边,就生成了最小生成树。如果并完了没有达到N-1条边,就是不能联通,输出 "-1"。原创 2014-12-27 11:07:12 · 864 阅读 · 0 评论 -
HDU4786 Fibonacci Tree【最小生成树】
题目大意: 给你图的N个点和M条双向边。告诉你每条边的权值。权值为1表示该边是白边,权值为0表示该 边为黑边。问:能否找到一棵生成树,使生成树白边的个数恰好为fibonacci数。如果能构成这样 的fibonacci树,输出Yes,否则输出No。 思路: 先将fibonacci数列打表。然后根据题意构图。然后根据边的权值大小排序,用Kruskal先求一遍 最小生成树,再求一遍最大生成树。如果最小生成树和最大生成树之间存在fibonacci树,则说明 能够成fibonacci树。这是因为如果原创 2015-04-24 20:45:25 · 1642 阅读 · 0 评论 -
HDU2724 Tree【最小生成树】
题目大意: 有N个城市,每个城市有一个幸福值,如果两个城市A、B的幸福值分别为VA、VB,如果VA是 素数,或者VB是素数,又或者VA+VB是素数,则城市A和B就能连接一条路,建路的所用花费 为Min(Min(VA , VB),|VA-VB|)。 问:现在想要建几条路,使得能够连接所有的城市,所需要建设的最少路程和是多少? 思路: 就是求最小生成树,先用素数筛选法将素数打表,然后根据题意建边。最后就是用Prim模板求 最小生成树就行了。原创 2015-04-09 11:31:48 · 1019 阅读 · 0 评论 -
HDU1301 POJ1251 Jungle Roads【Prim】【最小生成树】
题目大意:热带的一个岛上有N个村庄,还有一些路,现在丛林把道路给破坏了。酋长 想要去掉一些不必要的路,使得剩下的路既能联通全部村庄,又能使总路程最短。求: 这个最短的总路程是多少 思路:就是给你N个点,M条边,求最小生成树。用Prim算法来做,输入的时候将字母 代表的村庄转换为下标(即字母 - 'A')即可。原创 2015-01-19 22:29:15 · 1123 阅读 · 0 评论 -
POJ1258 Agri-Net【Prim】
题目大意:给你一个N个点的矩阵图,求所有点相连的最小生成树。 思路:直接裸的Prim算法。原创 2014-12-24 16:00:44 · 801 阅读 · 0 评论 -
HDU1102 Constructing Roads【Prim】
题目大意:先给你N个村庄之间距离,用矩阵表示。再告诉你S个已经建好的路。 求再建多少距离的路,能实现N个村庄全部联通。 思路:用Prim算法来求最小生成树,已经建好的路就看做是路连接的两个村庄 之间距离为0。图建好后直接用Prim模板就可以了。原创 2015-01-03 18:28:33 · 824 阅读 · 0 评论 -
HDU1879 继续畅通工程【Prim】
题目大意:N个村庄之间修路,有的路已经修了,有的路没有修。给你N个村庄间 修路的花费和修建状态,问:最少需要再花费多少钱能将N个村庄全部联通。 思路:已经修建过的路花费赋值为0,Prim算法求最小生成树。原创 2014-12-24 16:18:06 · 1004 阅读 · 0 评论 -
HDU2988 Dark roads【Kruskal】
题目大意:给你N个点M条路的图,点的变化由0~N-1,求最小生成树。 思路:裸的Kruskal算法,直接求就可以。原创 2014-12-27 13:34:59 · 1243 阅读 · 0 评论 -
HDU1875 畅通工程再续【Prim】
题目大意:给你几个岛的坐标,只有两个岛的距离在10~1000米范围内的岛才能 建立道路。每米道路花费100元。问:能否建立连接全部岛屿的道路。若能,输出 建立道路的最小花费;若不能输出"oh!"。 思路:主要是建图问题,纠结在Prim上半天,最后才发现只要建图的时候多想想就 好了。建图的时候,只有满足条件的才能赋值距离,否则就为INF(假设的无穷大)。 Prim求最小生成树的时候,若没有找到与当前链接岛屿最近的满足建造条件的道路, 就直接输出"oh!",并退出。否则就继续查找,直到最后输出最小花费。原创 2014-12-25 10:37:56 · 1025 阅读 · 0 评论 -
HDU1863_畅通工程【Prim】【并查集】
题目大意:给你M个村庄、N条路,即N条路所连接的两个村庄即路程。 问能否各个村庄都能有路达到,若不通,则输出'?',若通,则计算出连接 所有村庄最小的路程和 思路:先用并查集判断能否所有村庄。把有路连接的村庄并到一个集合里。 最后,若只有一个集合,则所有村庄都能连接。若有两个以上,则肯定有 村庄不能到达。然后用Prim算法计算出图的最小生成树。原创 2014-10-19 21:17:14 · 1182 阅读 · 0 评论 -
HDU1233 还是畅通工程【Prim】
题目大意:给你一个图,求连接所有点的最短路径。 思路:Prim算法求图的最小生成树,模板题。原创 2014-12-23 22:36:35 · 914 阅读 · 0 评论 -
HDU1162 Eddy's picture【Prim】
题目大意:给你N个点的坐标,求能使这N个点相连的所有边的最小距离是多少。 思路:先求出每个点和其他点的距离,存到图中,用Prim模板来做。原创 2014-12-25 16:18:10 · 1445 阅读 · 0 评论 -
POJ2485 Highways【Prim】
题目大意:岛上要建高铁,有N个站点,给你一个图,表示这N个站点每个站点之间的距离, 要求建造的高铁路线能连接所有的站点,并且使总的路程最短。求出满足情况的路线中两个站 点间最长的路。 思路:根据要求求出最小生成树,并求出最小生成树上的最大边,就是最终答案。原创 2015-01-24 20:55:35 · 1046 阅读 · 0 评论 -
POJ2395 Out of Hay【Kruskal】
题目大意:1号农场的草被牛吃完了,Bessie必须从其他农场运草回来,总共有N个农场,Bessie要 去其他所有的农场运草回来,他想要使总路程最短并且路线能连接所有的农场。必须要考虑到路上 带的水袋大小。因为水袋大小和路线中距离最长的两个农场之间的路有关,现在Bessie想要求出满 足要求的路线中两个农场之间最长的路距离是多少。 思路:满足要求的路线其实就是最小生成树,路线中两个农场之间最长的路距离就是最小生成树上 最长的边。这样用Kruskal求最小生成树的时候,用Max求出最小生成树上最长的边。原创 2015-01-24 20:25:36 · 1810 阅读 · 0 评论 -
POJ2377 Bad Cowtractors【Kruskal】【求最大生成树】
题目大意:Bessie要在John的N个谷仓之间修路,John要求用尽可能少的路使得所有谷仓都能 联通,并且总距离最短,但是他又不想给Bessie钱。Bessie已经意识到John可能不给他钱,所 以他就想把这个工程做的最糟糕并且不让John发现。他决定用尽可能少的路使得所有谷仓都能 联通,但是要使总距离尽可能长。求这个可能的总距离。如果不能使得所有谷仓都联通,则输 出"-1"。 思路:和最小生成树的求法类似,这里使边的权值尽可能大。用Kruskal算法来做,排序的时候, 将边从大到小排序。因为Kruska原创 2015-01-24 19:11:37 · 1671 阅读 · 0 评论 -
POJ1789 Truck History【Prim】
题目大意:给你N个字符串,每个字符串代表一个结点,每个结点之间的距离为字符串中 不同字符的个数。比如:"abaaaaa"和"aabaaaa",第二个和第三个字符不同,两个结点 之间的距离就是2。以此类推,得到所有的结点。求所有结点构成图的最小生成树。 思路:按题意算出各结点之间的距离,存入图中,用Prim算法求解,注意输出格式。原创 2015-01-24 17:45:53 · 1079 阅读 · 0 评论 -
最小生成树【模板】
Kruskal算法struct Edge { int from; int to; int w; }; Edge Edges[200200]; int father[200200],N,M; int find(int x) { if(x != father[x]) father[x] = find(father[x]原创 2015-05-02 23:46:52 · 1239 阅读 · 0 评论