POJ 1789 Truck History
2012-03-13 09:27
344 查看
很是感伤,前两天做的题都没做出来。。。好久没有AC的感觉了,昨晚终于AC一个题了!⊙﹏⊙b汗!
这题就是一个比较裸的最小生成树,考虑的边比较多,所以用了Prim算法。。。
View Code
空间15000KB 时间390MS 长度800B
顺便看了看此题排行第一名checkoj 188KB 125MS 450B我震惊了!!!这……坑爹!
想不明白他是怎么搞的!!这……太牛B了!!暂时也没找到之类的源码……ORZ
这题就是一个比较裸的最小生成树,考虑的边比较多,所以用了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
相关文章推荐
- POJ 1789 Truck History (最小生成树---prim)
- poj 1789 Truck History(kruskal算法)
- Truck History---poj1789
- POJ 1789-Truck History(最小生成树-不同字母个数)
- poj 1789 Truck History(先让我静静)
- POJ 1789 Truck History 最小生成树 KRUSKAL算法
- poj 1789 Truck History(最小生成树 Prim)
- POJ 1789 Truck History【最小生成树简单应用】
- Poj 1789 Truck History
- 初级->图算法->最小生成树 poj 1789 Truck History
- POJ 1789 Truck History
- poj 1789 Truck History【最小生成树prime】
- Truck History - POJ 1789 最小生成树
- poj 1789 Truck History
- poj1789 Truck History
- poj1789 Truck History
- POJ 1789--Truck History(最小生成树)
- POJ 1789 Truck History
- POJ-1789-Truck History
- POJ 1789 Truck History(最小生成树,prim算法)