图论九——最小生成树(prim)
来源:互联网 发布:通达信软件怎么用 编辑:程序博客网 时间:2024/05/29 19:18
数据结构实验之图论九:最小生成树
Time Limit: 1000MS Memory Limit: 65536KB
Submit Statistic
Problem Description
有n个城市,其中有些城市之间可以修建公路,修建不同的公路费用是不同的。现在我们想知道,最少花多少钱修公路可以将所有的城市连在一起,使在任意一城市出发,可以到达其他任意的城市。
Input
输入包含多组数据,格式如下。
第一行包括两个整数n m,代表城市个数和可以修建的公路个数。(n <= 100, m <=10000)
剩下m行每行3个正整数a b c,代表城市a 和城市b之间可以修建一条公路,代价为c。
Output
每组输出占一行,仅输出最小花费。
Example Input
3 2
1 2 1
1 3 1
1 0
Example Output
2
0
Hint
Author
赵利强
#include <iostream>#include <bits/stdc++.h>using namespace std;int n,m;bool vis[120];int dis[120];int Map[120][120];int prim(){ memset(vis,false,sizeof(vis)); for(int i = 1; i <=n;i++) { dis[i] = Map[1][i]; } dis[1] = 0; vis[1] = true; int sum = 0; for(int i = 1; i < n; i++) { int ans = 0x3f3f3f3f; int flag; for(int j = 1; j <=n;j++) { if(!vis[j] && dis[j]<ans) { ans = dis[j]; flag = j; } } vis[flag] = true; sum+=ans; for(int j = 1; j <=n;j++) { if(!vis[j] && dis[j] > Map[flag][j]) { dis[j] = Map[flag][j]; } } } return sum;}int main(){ int u,v,w; while(cin>>n>>m) { memset(Map,0x3f3f3f3f,sizeof(Map)); for(int i = 0; i < m; i++) { cin>>u>>v>>w; if(Map[u][v]>w) { Map[u][v] = Map[v][u] = w; } } cout<<prim()<<endl; } return 0;}/***************************************************Result: AcceptedTake time: 40msTake Memory: 260KBSubmit time: 2017-06-10 20:56:18****************************************************/
阅读全文
0 0
- Prim — 最小生成树
- 图论九——最小生成树(prim)
- 最小生成树——prim
- 最小生成树——prim算法
- 最小生成树——prim算法
- 最小生成树——Prim
- 最小生成树算法——Prim
- 最小生成树——prim
- 最小生成树——Prim算法
- 最小生成树——Prim/Kruskal
- 最小生成树——Prim算法
- 最小生成树——Prim
- 最小生成树——Prim算法
- 最小生成树——Lazy Prim
- 普里姆Prim— 最小生成树
- 最小生成树—Prim的实现
- prim算法模板—最小生成树
- 最小生成树—prim算法
- lamnda函数--c++11中的匿名函数
- C++分布式实时应用框架——系统管理模块
- Tomcat 修改/webapps/ROOT发布路径(Linux和windows环境)
- Generate Parentheses
- Java Web项目中解决中文乱码方法总结
- 图论九——最小生成树(prim)
- HorizontalScrollView与Fragment基础使用
- AlertDialog
- 冒泡程序的优化问题
- javax.persistence.entitynotfoundexception怎么解决
- CIFAR-10和CIFAR-100数据集读取显示
- 内核中的kmalloc函数详解
- JSP内置对象request、response(四)
- 【java基础:net】基于TCP的客户端与服务端进行字母大小写转换的Demonstration