图论九——最小生成树(prim)
2017-11-22 15:13
246 查看
数据结构实验之图论九:最小生成树
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
赵利强
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: Accepted Take time: 40ms Take Memory: 260KB Submit time: 2017-06-10 20:56:18 ****************************************************/
相关文章推荐
- 图论--最小生成树总结(Prim&&Kruskal)
- HOJ Tangled in Cables 图论 最小生成树 prim
- 图论 邻接链表存储 BFS DFS 拓扑排序 最小生成树 KRUSKAL PRIM
- 图论 最小生成树 Prim Kruskal POJ 3255 POJ 3723 POJ 3169
- 图论-带权图的最小生成树(Prim)算法
- 图论浅析--最小生成树之Prim
- 数据结构之 图论---最小生成树(prim + kruskal)
- 图论-Prim最小生成树
- 图论 之 最小生成树 (Kruskal and Prim)
- 图论中最小生成树算法-Prim(普里姆)算法、kruskal(克鲁斯卡尔避圈法)算法、破圈算法
- 图论浅析--最小生成树之Prim
- 夕拾算法进阶篇:34)最小生成树Prim(图论)
- 图论-最小生成树-Prim
- 图论总结 Dijkstra Tarjan 最小生成树 二分图 最短路 强连通分量 双连通分量 Bellman-Ford SPFA 二分图染色 Kruskal Prim 网络流 二分图匹配 Dinic
- 图论 || Prim(最小生成树)
- poj 1287 Networking(图论:最小生成树)
- 模板整理——图论·最小生成树·Kruskal
- prim最小生成树
- 继续畅通工程(prim——最小生成树)
- 最小生成树(prim)--poj2349