poj1789Truck History(简单最小生成树)
2012-08-06 20:04
211 查看
http://poj.org/problem?id=1789
模板题 题意是一个字符串跟一个字符不同的字符串有多少 这个数量就相当于权值 连起来最小
View Code
模板题 题意是一个字符串跟一个字符不同的字符串有多少 这个数量就相当于权值 连起来最小
View Code
#include <iostream> #include<algorithm> #include<string.h> #include<cstdio> #define INF 0x3f3f3f3f using namespace std; char c[2001][10]; int w[2001][2001],vis[2001],low[2001],s; void prime(int n) { int i,j,k,m; memset(vis,0,sizeof(vis)); vis[1] = 1; for(i =2 ; i <= n ; i++) low[i] = w[1][i]; for(i = 1; i <= n ; i++) { m = INF; for(j = 1; j <= n ; j++) if(!vis[j]&&low[j]<m) m = low[k=j]; if(m==INF) break; s+=m; vis[k] = 1; for(j = 1; j <= n ; j++) if(!vis[j]&&low[j]>w[k][j]) low[j] = w[k][j]; } } int main() { int i,j,k,n,m,y,x; while(scanf("%d%*c",&n)&&n) { memset(w,INF,sizeof(w)); s = 0; for(i = 1; i <= n ; i++) { gets(c[i]); } for(i = 1; i <= n ; i++) { for(j = i+1; j <= n ; j++) { y = 0; for(x = 0 ; x < 7 ; x++) if(c[j][x]!=c[i][x]) y++; if(w[i][j]>y) { w[i][j] = y; w[j][i] = y; } } } prime(n); printf("The highest possible quality is 1/%d.\n",s); } return 0; }
相关文章推荐
- HDU 1233 简单最小生成树 prim算法
- 最小生成树 Kruskal 算法 简单题
- POJ 1258Agri-Net 简单的最小生成树
- poj 1258 Agri-Net(简单最小生成树)
- nyoj 38 简单并查集的应用&最小生成树
- poj——1789(图论之最小生成树的简单应用)
- 最小生成树问题 普利姆算法简单模板 hdoj1233
- 最小生成树 Prim和Kruskal(简单证明与模版)
- POJ1251-----最小生成树简单题
- nyoj 38 简单并查集的应用&最小生成树
- 5-4 公路村村通 (30分)【简单的最小生成树】
- HDU 1102 Constructing Roads【简单最小生成树,Prime算法+Kruskal算法】
- POJ - 1251 Jungle Roads(最小生成树简单题)
- 【HDU5723 2016 Multi-University Training Contest 1A】【最小生成树 + 简单算贡献】 Abandoned country 最小生成树的链长之和
- POJ 2031 Building a Space Station 简单计算几何 + 最小生成树
- POJ - 1789 Truck History(最小生成树简单题)
- 杭电1233——还是通畅工程~简单最小生成树问题
- ACM HDU 1162 Eddy's picture (简单最小生成树,开始练习使用模板了)
- 最小生成树的简单例题
- 51nod-1640--天气晴朗的魔法(简单最小生成树)