poj 1258 Agri-Net

来源:互联网 发布:unity3d 四元数 编辑:程序博客网 时间:2024/06/08 19:24

prim算法

#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;#define maxn 110#define inf  0x7f7f7f7fint n;int d[maxn][maxn];//图 int l[maxn];//未选点到已选点的距离 int v[maxn];//已选标记 int prim(){    int ans=0;    l[0]=0;    memset(v,0,sizeof v);    v[0]=1;    for(int i=1;i<n;i++)    {        l[i]=d[0][i];    }    for(int i=1;i<n;i++)    {        int m=inf,temp;        for(int j=0;j<n;j++)        {            if(!v[j]&&m>l[j])            {                m=l[temp=j];                }        }        ans+=m;        l[temp]=0;        v[temp]=1;        for(int i=0;i<n;i++)        {            l[i]=min(l[i],d[temp][i]);        }    }    return ans;} int main(){    while(~scanf("%d",&n))    {        for(int i=0;i<n;i++)        {            for(int j=0;j<n;j++)            {                scanf("%d",&d[i][j]);            }        }        printf("%d\n",prim());    }    return 0;}
0 0
原创粉丝点击