标签:des style http color os io strong for
| Time Limit: 2000MS | Memory Limit: 65536K | |
| Total Submissions: 18272 | Accepted: 7070 |
Description
Input
Output
Sample Input
4 aaaaaaa baaaaaa abaaaaa aabaaaa 0
Sample Output
The highest possible quality is 1/3.
Source
#include<cstdio>
#include<iostream>
#include<cstring>
#define INF 0x3f3f3f3f
using namespace std;
const int maxn=2000+10;
int dis[maxn],gra[maxn][maxn],vis[maxn],n;
struct Node
{
char car_number[10+10];
}node[maxn];
int caldistance(Node a,Node b)
{
int k=0;
for(int i=0;i<7;i++)
if(a.car_number[i]!=b.car_number[i])
k++;
return k;
}
void prim()
{
int tmp,now,ans=0;
memset(dis,0x3f,sizeof(dis));
memset(vis,0,sizeof(vis));
for(int i=1;i<=n;i++)
dis[i]=INF;
dis[1]=0;
for(int i=1;i<=n;i++)
{
tmp=INF;
for(int j=1;j<=n;j++)
{
if(!vis[j]&&tmp>dis[j])
{
now=j;
tmp=dis[j];
}
}
vis[now]=1;
ans=ans+tmp;
for(int j=1;j<=n;j++)
{
if(!vis[j]&&dis[j]>gra[now][j])
dis[j]=gra[now][j];
}
}
printf("The highest possible quality is 1/%d.\n",ans);
}
void read_graph()
{
int temp;
for(int i=1;i<n;i++)
for(int j=i+1;j<=n;j++)
{
temp=caldistance(node[i],node[j]);
gra[i][j]=gra[j][i]=temp;
}
}
int main()
{
while(~scanf("%d",&n),n)
{
for(int i=1;i<=n;i++)
scanf("%s",node[i].car_number);
read_graph();
prim();
}
return 0;
}
poj1789Truck History(最小生成树prim算法),布布扣,bubuko.com
poj1789Truck History(最小生成树prim算法)
标签:des style http color os io strong for
原文地址:http://blog.csdn.net/u014303647/article/details/38474199