poj 1789 Truck History
来源:互联网 发布:linux ansi 编辑:程序博客网 时间:2024/06/09 14:04
prim求最小生成树。
1 #include<stdio.h> 2 #include<string.h> 3 #define INF 100000000 4 #define MAXN 2100 5 6 int n, v[MAXN], low[MAXN], d[MAXN][MAXN]; 7 char s[MAXN][10]; 8 9 void prim()10 {11 int ans = 0;12 memset(v, 0, sizeof(v));13 v[0] = 1;14 for(int i = 1; i < n; i ++) low[i] = d[0][i];15 for(int i = 1; i < n; i ++)16 {17 int min = INF, p;18 for(int j = 0; j < n; j ++)19 if(!v[j] && min > low[j]) min = low[p=j];20 ans += min;21 v[p] = 1;22 for(int j = 0; j < n; j ++)23 if(!v[j] && low[j] > d[p][j]) low[j] = d[p][j];24 }25 printf("The highest possible quality is 1/%d.\n",ans);26 }27 void init()28 {29 while(scanf("%d",&n))30 {31 if(n == 0) break;32 for(int i = 0; i < n; i ++)33 scanf("%s",s[i]);34 for(int i = 0; i < n; i ++)35 {36 for(int j = i+1; j < n; j ++)37 {38 int t = 0;39 for(int k = 0; k < 7; k ++)40 if(s[i][k] != s[j][k]) t ++;41 d[i][j] = t;42 d[j][i] = t;43 }44 }45 prim();46 }47 }48 int main()49 {50 init();51 return 0;52 }
0 0
- POJ 1789 Truck History
- POJ 1789 Truck History
- POJ 1789 Truck History
- poj 1789 Truck History
- poj 1789 Truck History
- Poj 1789 Truck History
- poj 1789 Truck History
- poj 1789 Truck History
- poj 1789 Truck History
- poj 1789 Truck History
- POJ-1789-Truck History
- poj-1789-Truck History
- POJ 1789 Truck History
- poj 1789 Truck History
- POJ 1789 Truck History
- POJ 1789 Truck History
- POJ 1789 Truck History
- POJ 1789 Truck History
- poj 3259 Wormholes
- poj 1062昂贵的聘礼
- poj 2253 Frogger
- poj 1125 Stockbroker Grapevine
- poj 2240 Arbitrage
- poj 1789 Truck History
- poj 2485 Highways
- 数据库 事务 ACID
- C++ -- 如何取得一个给定的地址所存放的值
- poj 1258 Agri-Net
- poj 1236 Network of Schools
- g729源码分析-2-共振锋感知加权
- poj 1274 The Perfect Stall
- poj 2239 Selecting Courses