1102 Constructing Roads

来源:互联网 发布:推荐几个精仿的淘宝店 编辑:程序博客网 时间:2024/06/11 19:31

最小生成树 Prim算法

#include<iostream>using namespace std;#define max 101#define MAX10000000int len[max][max];int que[max];int n;int Prim(){int i,j;int sum=0;int lea[max];int k;int min;for(i=1;i<=n;i++)lea[i]=len[1][i];que[1]=1;for(i=2;i<=n;i++){min=MAX;for(j=2;j<=n;j++)if(que[j]==0&&min>lea[j]){min=lea[j];k=j;}que[k]=1;sum+=min;for(j=1;j<=n;j++)if(que[j]==0&&len[k][j]<lea[j])lea[j]=len[k][j];}return sum;}int main(){int i,j;int x,y;int k;int m;while(cin>>n!=0&&n){for(i=1;i<=n;i++)que[i]=0;for(i=1;i<=n;i++)for(j=1;j<=n;j++)len[i][j]=MAX;for(i=1;i<=n;i++){for(j=1;j<=n;j++){cin>>m;if(m<len[i][j])len[i][j]=len[j][i]=m;;}}cin>>m;for(i=1;i<=m;i++){cin>>x>>y;len[x][y]=len[y][x]=0;}k=Prim();cout<<k<<endl;}return 0;}


原创粉丝点击