超时。。。。。。
#include <stdio.h>
#define MAX 99999
int a[201][201];
int main()
{
int que[201],top=0,book[201]={0},min,min1,min2,all=0,n,i,j,k;
char s[201][9];
while(scanf("%d",&n) && n)
{
for(i=1;i<=n;i++)
{
getchar();
for(j=1;j<=7;j++)
scanf("%c",&s[i][j]);
}
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
for(k=1;k<=7;k++)
if(s[i][k]!=s[j][k])
a[i][j]++;
for(i=1;i<=n;i++)
a[i][i]=MAX;
top++;
que[1]=1;
book[1]=1;
while(top<n)
{
min=MAX;
for(i=1;i<=top;i++)
{
for(j=1;j<=n;j++)
{
if(book[j]==0 && a[que[i]][j]<min)
{
min=a[que[i]][j];
min1=que[i];
min2=j;
}
}
}
top++;
que[top]=min2;
book[min2]=1;
all+=min;
a[min1][min2]=MAX;
a[min2][min1]=MAX;
}
printf("The highest possible quality is 1/%d.\n",all);
}
return 0;
}