prim有意思。。。

来源:互联网 发布:淘宝有什么免费推广 编辑:程序博客网 时间:2024/05/16 15:34
#include<iostream>#include<cstdio>#define inf 99999999using namespace std;const int maxn=1010;int a[maxn][maxn],dis[maxn],p[maxn];int maxin(){  int i,j,k,m,n,sum=0,ans=0;  scanf("%d%d",&n,&m);  for(i=1;i<=n;i++)dis[i]=inf;  for(i=1;i<=n;i++)  for(j=1;j<=n;j++){    a[i][i]=1;a[i][j]=inf;  }  while(m--){    int x,y,z;scanf("%d%d%d",&x,&y,&z);a[x][y]=z;a[y][x]=z;  }  for(i=1;i<=n;i++)dis[i]=a[1][i];  p[1]=1;  sum++;  for(i=1;i<=n;i++){int mina=inf;for(j=1;j<=n;j++)    if(!p[j]&&dis[j]<mina){mina=dis[j];k=j;};    p[k]=1;ans+=dis[k];for(j=1;j<=n;j++){  if(!p[j]&&dis[j]>a[k][j]){    dis[j]=a[k][j];  }}  }  return 0;}

0 0