Uva 6437 - Power Plant 裸最小生成树

原创 2013年12月01日 22:49:11

                 题意:

                          一个无向图中(至多100个点),..每条边有其费用...有些点是发电站..现在要求所有的点都可以达到至少一个发电站..所需的最小费用..

                 题解:

                          先就把发电站的点放到一个集合中..然后裸的kruskal了...

Program:

#include <iostream>
#include <stdio.h>
#include <algorithm>
#include <string.h>
#include <cmath>
#define MAXN 205
using namespace std;
struct node
{
       int u,v,d;
}edge[MAXN*MAXN];
int father[MAXN];
int getfather(int x)
{
      if (father[x]==x) return x;
      return father[x]=getfather(father[x]);
}
bool cmp(node a,node b)
{
      return a.d<b.d;
}
int main()
{
      int C,cases,N,K,M,i,u,v,f,ans; 
      scanf("%d",&C);
      for (cases=1;cases<=C;cases++)
      {
               scanf("%d%d%d",&N,&M,&K);
               for (i=1;i<=N;i++) father[i]=i;
               scanf("%d",&f);
               for (i=2;i<=K;i++) scanf("%d",&u),father[u]=f;
               for (i=1;i<=M;i++)
                   scanf("%d%d%d",&edge[i].u,&edge[i].v,&edge[i].d);
               sort(edge+1,edge+1+M,cmp);
               ans=0;
               for (i=1;i<=M;i++)
               {
                        u=edge[i].u,v=edge[i].v;
                        if (getfather(u)==getfather(v)) continue;
                        ans+=edge[i].d;
                        father[father[u]]=father[v];
               }
               printf("Case #%d: %d\n",cases,ans);
      }
      return 0;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

UVA Live 6437 Power Plant 最小生成树

题意:有许多油井和村庄什么的,让你使得这些村庄能连通一个油井就好了。第一行给你一个数字T代表有T组测试数据,第二行有 M , N , K ,M代表包括油井在内的村庄数,N 代表有N个 两两连通的地方。...

UVALive 6437 Power Plant(最小生成树)

UVALive 6437 Power Plant (题目链接) 题意:给定n个点,其中有k个发电站,m条有权边。要求所有的点都与发电站联通,求权重之和最小为多少。 思路:最小生...

UVA 1151 Buy or Build(最小生成树+枚举子集)

题目地址:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem...

UVa 11747 Heavy Cycle Edges(最小生成树)

题意:给一个图,按照找最小生成树的方法,找到环并输出环中其中最大的边。 思路:一样是用Kruskal算法,只不过加边的时候,判断边上两点在不在一个连通集合中,如果在,则说明加上边得到了环,输出这条边...

UVa 1151 Buy or Build--最小生成树+二进制选择

题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem...

UVA - 10369 Arctic Network (最小生成树)

题目大意: 有n个科研站, 要把这些站用卫星或者无线电连接起来,使得任意两个都能直接或者间接相连。任意两个都有安装卫星设备的,都可以直接通过卫星通信,不管它们距离有多远。而安装有无线电设备的两个站,...

uva 10034(最小生成树)

题目: In an episode of the Dick Van Dyke show, little Richie connects the freckles on his Dad's back ...

UVA 11354 LCA+最小生成树

点击打开链接 题意:给一个无向图,然后有Q次询问U V,问的是U到V的所有路径中的最小值最大 思路:U到V的路径最小值最大,则这条边肯定是最小生成树上的边,那么我们可以先将所有的最小生成树上的边全...
  • Dan__ge
  • Dan__ge
  • 2016年06月28日 19:17
  • 1375

UVA1279,Asteroid Rangers,星际游击队,好烦的最小生成树

题意: 三维空间内有n(n
  • cww97
  • cww97
  • 2016年10月11日 18:21
  • 235

UVA - 1151 Buy or Build(最小生成树+二进制枚举子集)

点击打开题目链接 题目大意:给出n个点的坐标,连边的费用为两端点的欧几里得距离。给出q种套餐,购买某种套餐花费Ci,该套餐中所有点将连通,求最小花费。 思路:读完题后知道是kruskal最短路...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Uva 6437 - Power Plant 裸最小生成树
举报原因:
原因补充:

(最多只允许输入30个字)