时间限制:1000 ms  |  内存限制:65535 KB
难度:4
描写叙述
南阳理工学院要进行用电线路改造。如今校长要求设计师设计出一种布线方式。该布线方式须要满足下面条件:

1、把全部的楼都供上电。

2、所用电线花费最少

输入
第一行是一个整数n表示有n组測试数据。(n<5)

每组測试数据的第一行是两个整数v,e.

v表示学校里楼的总个数(v<=500)

随后的e行里,每行有三个整数a,b,c表示a与b之间假设建铺设线路花费为c(c<=100)。(哪两栋楼间假设没有指明花费,则表示这两栋楼直接连通须要费用太大或者不可能连通)

随后的1行里,有v个整数,当中第i个数表示从第i号楼接线到外界供电设施所须要的费用。( 0<e<v*(v-1)/2 )

(楼的编号从1開始)。因为安全问题,仅仅能选择一个楼连接到外界供电设备。

数据保证至少存在一种方案满足要求。
输出
每组測试数据输出一个正整数,表示铺设满足校长要求的线路的最小花费。

例子输入
1
4 6
1 2 10
2 3 10
3 1 10
1 4 1
2 4 1
3 4 1
1 3 5 6
例子输出
4

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <limits.h>
#include <malloc.h> using namespace std; int sum; void Prim(int **node, int v)
{
sum=0;
int i,j,k,min;
int *minCost=(int *)malloc(sizeof(int)*v); minCost[0]=0; for(i=1;i<v;i++)
minCost[i]=node[0][i]; for(i=1;i<v;i++)
{
min=INT_MAX;
for(j=1,k=1;j<v;j++)
{
if(minCost[j] && minCost[j]<min)
{
min=minCost[j];
k=j;
}
} sum+=minCost[k];
minCost[k]=0; for(j=1;j<v;j++)
{
if(minCost[j] && minCost[j]>node[k][j])
{
minCost[j]=node[k][j];
}
}
}
} int main()
{
int n,v,e,i,j,k,l;
scanf("%d",&n);
while(n--)
{
scanf("%d%d",&v,&e); int **node=(int **)malloc(sizeof(int*)*v); for(i=0;i<v;i++)
node[i]=(int *)malloc(sizeof(int)*v); for(i=0;i<v;i++)
for(j=0; j<v; j++)
node[i][j]=INT_MAX; for(l=0;l<e;l++)
{
scanf("%d%d%d",&i,&j,&k);
node[i-1][j-1]=node[j-1][i-1]=k;
} Prim(node, v); int *av=(int *)malloc(sizeof(int)*v); for(i=0;i<v;i++)
scanf("%d",&av[i]);
sort(av,av+v); printf("%d\n",sum+av[0]); }
return 0;
}

NYOJ 38 布线问题_(解法2 Prim算法)的更多相关文章

  1. NYOJ 38 布线问题_(解法1 Kruskal算法)

    时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描写叙述 南阳理工学院要进行用电线路改造.如今校长要求设计师设计出一种布线方式,该布线方式须要满足下面条件: 1.把全部的楼都供 ...

  2. nyoj 38 布线问题 Kruskal and Prim

    布线问题 时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描述 南阳理工学院要进行用电线路改造,现在校长要求设计师设计出一种布线方式,该布线方式需要满足以下条件: 1.把所有的 ...

  3. NYOJ 38 布线问题 (最小生成树 prim)

    题目链接 描述 南阳理工学院要进行用电线路改造,现在校长要求设计师设计出一种布线方式,该布线方式需要满足以下条件: 1.把所有的楼都供上电. 2.所用电线花费最少 输入 第一行是一个整数n表示有n组测 ...

  4. NYOJ 38布线问题

    http://acm.nyist.net/JudgeOnline/problem.php?pid=38 布线问题 时间限制:1000 ms  |  内存限制:65535 KB 难度:4   描述 南阳 ...

  5. nyoj 38 布线问题

    题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=38 最小生成树水题~ 代码: #include "stdio.h" / ...

  6. prim算法

    最小生成树 一个有 n 个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有 n 个结点,并且有保持图连通的最少的边.最小生成树可以用kruskal(克鲁斯卡尔)算法或prim(普里姆)算法 ...

  7. 【Python排序搜索基本算法】之Prim算法

    Prim算法是实现最简单的最小生成树(MST)算法,适合于稠密图.要实现Prim算法,我们主要关注的是增量的变化,也就是从每个非树顶点到树顶点的最短距离,使得最后生成一棵包括所有顶点的树,并且这棵树的 ...

  8. 经典算法题每日演练——第十四题 Prim算法

    原文:经典算法题每日演练--第十四题 Prim算法 图论在数据结构中是非常有趣而复杂的,作为web码农的我,在实际开发中一直没有找到它的使用场景,不像树那样的频繁使用,不过还是准备 仔细的把图论全部过 ...

  9. 2017年中国大学生程序设计竞赛-中南地区赛暨第八届湘潭市大学生计算机程序设计大赛题解&源码(A.高斯消元,D,模拟,E,前缀和,F,LCS,H,Prim算法,I,胡搞,J,树状数组)

    A------------------------------------------------------------------------------------ 题目链接:http://20 ...

随机推荐

  1. 开发C# .net时使用的数据库操作类SqlHelp.cs

    练习开发WPF程序的时候,是这样写的,虽然很简单,相必很多新手会用到,所以拿来共享一下, using System; using System.Collections.Generic; using S ...

  2. SDWebImage 详解

    一.SDWebImage介绍 1.在项目的开发过程中,我们经常会用到异步加载图片的功能,先从网络上异步下载图片,然后通过UIImageView显示在屏幕上.这是一个经常使用的功能,基本上所有的联网应用 ...

  3. ASP 下 能作为json输出后js能解密的 escape 函数

    网络上流传的 vbsEscape UnEscape都只针对asp而言,js传递给asp时可进行转义解码,但asp输出json时如果用这些函数进行编码的话,js是无法正常解码的. 下面是经过实际验证可用 ...

  4. xapian安装

    xapian安装:$ su enter your root password # rpm -ivh http://rpm.eprints.org/rpm-eprints-org-key-1-1.noa ...

  5. 【HDOJ】3234 Exclusive-OR

    并查集.对于对元素赋值操作,更改为I p n v.令val[n]=0(任何数与0异或仍为原值).考虑fa[x] = fx, fa[y] = fy.如果使得fa[fx] = fy, 那么val[fx] ...

  6. oracle 读取最大值sql

    select * from table a1 where rowid = ( select max(rowid) from table a2 where a2.id_subject_cost=a1.i ...

  7. Ext.form.FormPanel定义的参数说明

    1.formId : String (可选的)FORM标签的id(默认是自动生成的). 2.labelWidth : Number 标签的宽度.该属性级联于子容器. 3. itemCls : Stri ...

  8. [App]Taste VS2015 && Android Studio

    逆水飞 尝试进行各种Android开发工具的安装以及大致流程对比 几个疑惑的地方 1)根据SDK的描述,应该是一个新版本的推出就有对应的包里面包含多个文件那么对于:SDK Platform.APIs. ...

  9. Java---XML的解析(2)-DOM4J解析/Xpath

    Dom4j: Dom SUN dom在加载时,将所有元素全部加载内存 DOM4j - 第三方. Dom4j是一个开源.灵活的XML API. 目前很多开源框架如struts,hibernate都使用d ...

  10. (转载)WindowsXP上安装和运行神器SqlMap的步骤

    在Windows XP上安装和运行SqlMap的步骤…… 1.首先下载SqlMap 点击下载. https://codeload.github.com/sqlmapproject/sqlmap/leg ...