数据结构实验之图论六:村村通公路

Time Limit: 1000MS Memory Limit: 65536KB
Submit Statistic Discuss

Problem Description

当前农村公路建设正如火如荼的展开,某乡镇政府决定实现村村通公路,工程师现有各个村落之间的原始道路统计数据表,表中列出了各村之间可以建设公路的若干条道路的成本,你的任务是根据给出的数据表,求使得每个村都有公路连通所需要的最低成本。

Input

连续多组数据输入,每组数据包括村落数目N(N <= 1000)和可供选择的道路数目M(M <= 3000),随后M行对应M条道路,每行给出3个正整数,分别是该条道路直接连通的两个村庄的编号和修建该道路的预算成本,村庄从1~N编号。 

Output

输出使每个村庄都有公路连通所需要的最低成本,如果输入数据不能使所有村庄畅通,则输出-1,表示有些村庄之间没有路连通。 

Example Input

5 8
1 2 12
1 3 9
1 4 11
1 5 3
2 3 6
2 4 9
3 4 4
4 5 6

Example Output

19

Hint

Author

#include<iostream>
#include <cstring>
#define Minimum  0x3f3f3f3f//无穷大
using namespace std;
int Map[1010][1010];//用二维数组来表示图的边的关系
int visit[1010];//顶点标记数组,值为1表示访问过,为0则没有访问过
int lowcost[1010];//存储每个顶点与之相连边的权值
int n,m;
int prim()
{int i,j,k;int sum =0,flag=0;int Min;visit[1]=1;for(i=1;i<=n;i++)//权值初始化{lowcost[i]=Map[i][1];}for(i=2;i<=n;i++){Min  = Minimum;for(j=1;j<=n;j++)//寻找每个顶点与之相连的边的最小权值{if(!visit[j]&&lowcost[j]<Min){Min = lowcost[j];k=j;}}if(Min==Minimum)//如果某个顶点与之相连的边找不到最小权值,则表示道路不通{flag = 1;break;}sum+=Min;visit[k]=1;for(j=1;j<=n;j++)//从新更新 下一次判断要用的权值{if(!visit[j]&&lowcost[j]>Map[j][k])lowcost[j]=Map[j][k];}}if(!flag)cout<<sum<<endl;elsecout<<-1<<endl;
}
int main()
{int u,v,w;while(cin>>n>>m){memset(Map,Minimum,sizeof(Map));//memset函数里面只能赋值为 0 -1(源于对补码的机制)memset(visit,0,sizeof(visit));while(m--){cin>>u>>v>>w;Map[u][v]=Map[v][u]=w;}prim();}return 0;
}/***************************************************
User name: YT1658506207邵雪源
Result: Accepted
Take time: 0ms
Take Memory: 2160KB
Submit time: 2017-08-11 19:17:20
****************************************************/

SDUT-3362 数据结构实验之图论六:村村通公路相关推荐

  1. 数据结构实验之图论六:村村通公路

    数据结构实验之图论六:村村通公路 Time Limit: 1000MS Memory limit: 65536K 题目描述 当前农村公路建设正如火如荼的展开,某乡镇政府决定实现村村通公路,工程师现有各 ...

  2. 数据结构实验之图论六:村村通公路(最小生成树Prim/Kruskal)

    Description 当前农村公路建设正如火如荼的展开,某乡镇政府决定实现村村通公路,工程师现有各个村落之间的原始道路统计数据表,表中列出了各村之间可以建设公路的若干条道路的成本,你的任务是根据给出 ...

  3. SDUT 2142 数据结构实验之图论二:基于邻接表的广度优先搜索遍历

    数据结构实验之图论二:基于邻接表的广度优先搜索遍历 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Descript ...

  4. SDUT OJ 数据结构实验之图论五:从起始点到目标点的最短步数(BFS)

    数据结构实验之图论五:从起始点到目标点的最短步数(BFS) Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss P ...

  5. 数据结构实验之图论三:判断可达性

    /*[添加链接描述](http://acm.sdut.edu.cn/onlinejudge2/index.php/Home/Index/problemdetail/pid/2139.html)*/ 数 ...

  6. SDUT_2121数据结构实验之链表六:有序链表的建立 (对建立的单项链表结构进行排序)

    点击打开链接 数据结构实验之链表六:有序链表的建立 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem ...

  7. SDUT-3378_数据结构实验之查找六:顺序查找

    数据结构实验之查找六:顺序查找 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 在一个给定的无序序列里,查找与给定关键字 ...

  8. 山东理工OJ【2121】数据结构实验之链表六:有序链表的建立(插排法)

     数据结构实验之链表六:有序链表的建立 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 输入N个无序的整数,建立一个有序链表, ...

  9. SDUT-2121_数据结构实验之链表六:有序链表的建立

    数据结构实验之链表六:有序链表的建立 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 输入N个无序的整数,建立一个有序链 ...

最新文章

  1. 业务逻辑写在存储过程好还是后端好_后端两小时,前端一星期!你只是一个写接口的工程师吗?...
  2. Reverse Linked List II leetcode java
  3. keepalived热备 keepalived+LVS Haproxy
  4. 光纤熔接盒盘线方法_【图文教程】光纤熔接技术的操作与技巧分享!
  5. 7年老Android一次操蛋的面试经历,讲的太透彻了
  6. 广汽埃安总经理古惠南:8分钟快充也不光是电池的问题 ,跟充电桩有关
  7. 如何把一个bin文件捆绑到一个可执行文件exe中?
  8. 杭电--1009 C语言实现
  9. 你可能不知道的字符比较中的“秘密”
  10. python列表数据写入txt文件_Python将列表数据写入文件(txt, csv,excel)
  11. 《程序员修炼之道——从小工到专家》(典藏书)
  12. 克拉默法则(Cramer's Rule)的证明
  13. 马科维茨投资组合有效集、最优投资组合
  14. 论文复现_芯片定位和引脚缺陷检测
  15. 【修真院“纯洁”系列之十九】驱逐令
  16. Android游戏开发学习笔记(三):视频的播放
  17. php html字符转换为字符串,PHP字符串函数html_entity_decode( 把HTML实体转换为字符)
  18. Google Earth Engine APP(GEE)——用一个选择器选择不同城市的应用
  19. Hive中使用sort_array函数解决collet_list列表排序混乱问题
  20. html关于页内样式,HTML的页内样式演示案例

热门文章

  1. VMware-workstation-6.0 安装系统前必须映射光驱盘符
  2. 充电类型一二次检测过程及充电类型
  3. Linux/Android多点触摸协议
  4. WINCE6.0+S3C2443下WatchDog学习
  5. python中几种交换2个变量的值的方法
  6. python遍历文件夹下所有文件大小_python遍历文件夹——两种遍历本地文件记录文件夹个数、文件数及文件大小的方法...
  7. 电脑退出全屏按哪个键_一款轻量级的电脑看图软件
  8. Effect of Switchovers, Failovers, and Control File Creation on Backups
  9. oracle基础之工具系列(持续更新中,,)
  10. C可变参数详解及其函数设计