POJ 1789

来源:互联网 发布:阿里云存储价格1t 编辑:程序博客网 时间:2024/05/16 01:19

超时。。。。。。

#include <stdio.h>#define MAX 99999int 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;}