您的位置:首页 > 其它

POJ 1789 Truck History

2012-03-13 09:27 344 查看
很是感伤,前两天做的题都没做出来。。。好久没有AC的感觉了,昨晚终于AC一个题了!⊙﹏⊙b汗!

这题就是一个比较裸的最小生成树,考虑的边比较多,所以用了Prim算法。。。

View Code

#include <stdio.h>
#include <memory.h>

#define N 2002

int map

;
char s
[8];
int lowcost
;

int distance(int x,int y)
{
int i=0,ans=0;

while(s[x][i])
{
if(s[x][i]!=s[y][i])    ++ans;
++i;
}
return ans;
}

int Prime(int n)
{
int i,j,v=1,u,ans=0;

memset(lowcost,111,sizeof(lowcost));
for(i=1;i<n;i++)
{
lowcost[v]=-1;    u=0;
for(j=1;j<=n;j++)
{
if(lowcost[j]!=-1)
{
if(map[v][j]<lowcost[j])
lowcost[j]=map[v][j];
if(lowcost[u]>lowcost[j])
u=j;
}
}
v=u;    ans+=lowcost[v];
}

return ans;
}

int main()
{
int i,j,n;
freopen("input.txt","r",stdin);
while(scanf("%d",&n),n)
{
for(i=1;i<=n;i++)
{
scanf("%s",s[i]);
for(j=1;j<i;j++)
{
map[i][j]=map[j][i]=distance(i,j);
}
}
printf("The highest possible quality is 1/%d.\n",Prime(n));
}
return 0;
}


空间15000KB 时间390MS 长度800B

顺便看了看此题排行第一名checkoj 188KB 125MS 450B我震惊了!!!这……坑爹!
想不明白他是怎么搞的!!这……太牛B了!!暂时也没找到之类的源码……ORZ
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: