一开始自己写的,wa了,把书上的函数抄上,ac了。回来有时间可能真的要整理一下魔板了,不过感觉平时还是自己打比较好,只是总结一下吧。

//POJ - 1789 Truck History #include #include #include #include #define N 2100 #define inf 0x3f3f3f3f using namespace std; int dis[N][N]={0}; char name[N][10]={0}; int n; int vis[N]={0}; int mi[N]={0}; void input() { for(int i=1;i<=n;i++) { scanf("%s",name[i]); } } void distant() { for(int i=1;i<=n;i++) { for(int j=i;j<=n;j++) { int t=0; for(int k=0;k<7;k++) { if(name[i][k]!=name[j][k])t++; } dis[i][j]=dis[j][i]=t; } } /*for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { cout<mi[i]) { minv=mi[i]; v=i; flag=1; } } if(flag==0)break; sum=sum+mi[v];//点v入图 for(int i=1;i<=n;i++)//更新min数组 { if(dis[v][i]>n) { if(n==0)break; input(); distant(); cout<<"The highest possible quality is 1/"<

这道题说实话还是挺简单的,就是套用prim算法嘛,然后prim算法也比较好理解。

carry养成中······