POJ :Networking
来源:互联网 发布:xplay6知乎 编辑:程序博客网 时间:2024/05/23 10:39
题目地址:
http://poj.org/problem?id=1287
最小生成树的模板题,不过要注意的是两条路之间可能不只有一条唯一的路,这里,选一条最小的路就行了。
代码:
//模板题//但是在两条路径之中可以有多个边//取最小的#include <iostream>#include<cstring>using namespace std;#define MAX 51#define INF 9999999int map[MAX][MAX];int micost[MAX];bool vis[MAX];int N,M;void Prim(){ int ans,i,j,v,Min; for(i=1;i<=N;i++) { vis[i]=0; micost[i]=map[1][i]; } ans=0; micost[1]=0; vis[1]=1; if(N==1){ cout<<0<<endl; return; } for(i=2;i<=N;i++) { Min=INF; for(j=2;j<=N;j++){ if(!vis[j]&&Min>micost[j]){ Min=micost[j]; v=j; } } if(Min==INF)break; else{ ans=ans+Min; vis[v]=1; } for(j=2;j<=N;j++) { if(!vis[j]&&micost[j]>map[v][j]) micost[j]=map[v][j]; } } cout<<ans<<endl; }int main(){ int i,j,a,b,c; while(cin>>N,N) { cin>>M; for(i=1;i<=N;i++) for(j=1;j<=N;j++) { if(i==j)map[i][j]=0; else map[i][j]=INF; }//初始化 for(i=1;i<=M;i++) { cin>>a>>b>>c; if(map[a][b]>c) map[a][b]=map[b][a]=c;//取最小的 }//输入 Prim(); } return 0;}
阅读全文
0 0
- POJ :Networking
- poj 1287 Networking
- POJ-1287-Networking
- poj 1287 networking
- POJ 1287 Networking
- POJ:1287 Networking
- POJ 1287 Networking
- poj 1287 Networking
- POJ-1287 Networking
- poj 1287 Networking
- POJ 1287 Networking
- poj 1287 Networking
- poj 1287 networking kruskal
- POJ 1287 Networking
- poj 1287 Networking
- POJ 1287 Networking
- POJ 1287 Networking
- Poj 1287 Networking
- (C++模板类)顺序表、双向链表
- ZOJ3541与时间相关的区间dp+记录路径
- 杭电acm 2802F(N)(循环节)
- 数组(1)
- hdu 1052 TianJi
- POJ :Networking
- 如何配置myeclipse10,Spring配置文件中输入class时的自动提示,spring本身的xml可以提示
- 阿里fastJson几种Json方式
- python virtualenv 强制修改环境变量迁移环境
- logistics回归--梯度上升算法以及改进--用于二分类
- 《代码整洁之道》读书笔记
- if __name__ == '__main__'的作用与原理
- 深入理解java虚拟机学习笔记-4.java类加载机制
- hdu 6053 TrickGCD