POJ 1258 Agri-Net 最小生成树 Prim算法

来源:互联网 发布:java电商架构 编辑:程序博客网 时间:2024/04/30 22:06

题目大意:给定一个矩阵graph[i][j] 表示<i,j>边上的权值,求出该最小生成树的总权值。

分析:水题,裸Prim就可以过掉了。

代码如下:

/*Memory  POJ 1258Orzmyk*/#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#define MAXN 1000000using namespace std;int graph[120][120],n;int prim(){int s=1,pos,d[120],res=0,ans=0,m=1;//m=1,s=1;初始化 bool v[120];memset(v,false,sizeof(v));//数组初始化 memset(d,0,sizeof(d));v[s]=true;for(int i=1;i<=n;i++)d[i]=MAXN;//pre while(true){if(m==n)break;res=MAXN;for(int i=2;i<=n;i++){if(!v[i]&&d[i]>graph[s][i])d[i]=graph[s][i];if(!v[i]&&res>d[i]){res=d[i];pos=i;}}s=pos;v[s]=true;ans+=res;m++;}return ans;}int main(){while(cin>>n){for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)cin>>graph[i][j];cout<<prim()<<endl;}//while(1);return 0;}


 

0 0