poj 1789 Truck History MST

来源:互联网 发布:mac玩刺客信条卡怎么办 编辑:程序博客网 时间:2024/06/11 13:42

   prim

/*author:jxylang:C/C++university:China,Xidian University**If you need to reprint,please indicate the source***/#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#include <queue>#define INF 1E9using namespace std;int d[2001];string org[2001];bool vis[2001];int n;int prim(){    int Min,now=0,i,k,K=n,ans=0,t;    while(K--)    {        Min=INF;        for(i=0;i<n;i++)        {            if(!vis[i]&&d[i]<Min)            {                Min=d[i];now=i;            }        }        vis[now]=1;        if(now)ans+=Min;        for(i=0;i<n;i++)        {            if(vis[i])continue;            t=0;            for(k=0;k<7;k++)              if(org[now][k]!=org[i][k])t++;            if(d[i]>t)d[i]=t;        }    }    return ans;}int main(){    int i;    while(~scanf("%d",&n)&&n)    {        memset(vis,0,sizeof(vis));        memset(d,127,sizeof(d));        for(i=0;i<n;i++)          cin>>org[i];        printf("The highest possible quality is 1/%d.\n",prim());    }}