#include<iostream>
#include<stdio.h>
#include<cstring>
using namespace std;
char str[2010][8];
int dis[2010][2010];
int mindis[2010];
bool rem[2010];
int n;
int prim()
{
memset(rem,false,sizeof rem);
memset(mindis,8,sizeof mindis);
int tool=0;
int s=0;
int sum=0;
for(int u=1;u<n;u++)
{
intmist=8;
rem[s]=true;
for(int i=1;i<n;i++)
{
if(!rem[i])
{
mindis[i]=min(mindis[i],dis[s][i]);
if(mindis[i]<mist)
{
mist=mindis[i];
tool=i;
}
}
}
s=tool;
sum+=mist;
}
return sum;
}
int main()
{
while(scanf("%d",&n)!=EOF&&n)
{
for(int i=0;i<n;i++)
{
scanf("%s",str[i]);
}
for(int i=0;i<n;i++)
for(int j=i+1;j<n;j++)
{
intnum=0;
for(int k=0;k<7;k++)
if(str[i][k]!=str[j][k])
num++;
dis[i][j]=dis[j][i]=num;
}
printf("The highest possible quality is1/%d.\n",prim());
}
return 0;
}
prim算法(poj1789)
最新推荐文章于 2018-12-05 11:30:57 发布