zoj 2158 prim

简介: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1158 #include <cstdio> #include <cstdlib> #include <cstring> #define INF 1000000 #define MAXN 2000 int N; char c

http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1158

#include <cstdio>
#include <cstdlib>
#include <cstring>
#define INF 1000000
#define MAXN 2000
int N;
char codes[MAXN][10];
int d[MAXN][MAXN];
int lowcost[MAXN];
int prim()
{
	int i, j, k;
	int dist;
	memset( d, 0, sizeof(d) );
	for( i = 0; i < N; i++ )
	{
		for( j = i+1; j < N; j++ )
		{
			dist = 0;
			for( k = 0; k < 7; k++ )
                if(codes[j][k]!= codes[i][k])
                dist++;
			 d[i][j] = d[j][i] = dist;
		}
	}
	int sum = 0;
	lowcost[0] = -1;
	for( i = 1; i < N; i ++ )
		lowcost[i] = d[0][i];
	for( i = 1; i < N; i++ )
	{
		int min = INF;
		for( k = 0; k < N; k++ )
		{
			if( lowcost[k] != -1  &&  lowcost[k] < min )
			{
				j = k;
				min = lowcost[k];
			}
		}
		sum += min;
		lowcost[j] = -1;
		for( k = 0; k < N; k ++ )
		{
			if( d[j][k] < lowcost[k] )
				lowcost[k] = d[j][k];
		}
	}
	return sum;
}
int main()
{
	int i;
//	freopen("1.txt","r",stdin);
	while( 1 )
	{
		scanf( "%d", &N );
		if( N==0 )
            break;
		for( i = 0; i < N; i++ )
			scanf( "%s", codes[i] );
		printf( "The highest possible quality is 1/%d.\n", prim());
	}
	return 0;
}

  

目录
相关文章
|
算法
1091 zoj Knight Moves的BFS算法和DFS
1091 zoj Knight Moves的BFS算法和DFS
70 0
|
图形学 C++
ZOJ1117 POJ1521 HDU1053 Huffman编码
Huffman编码的思想就是贪心,我们这里使用stl里的优先队列,priority_queue使用堆进行优化,虽然自己也可以写一个堆,但我感觉对于这道题有点主次不分了,再次感觉到stl确实是一个很强大的东西。
57 0
HDOJ 1081(ZOJ 1074) To The Max(动态规划)
HDOJ 1081(ZOJ 1074) To The Max(动态规划)
86 0
HDOJ 1081(ZOJ 1074) To The Max(动态规划)
|
机器学习/深度学习
POJ 1775 (ZOJ 2358) Sum of Factorials
POJ 1775 (ZOJ 2358) Sum of Factorials
151 0
|
算法 计算机视觉 存储
【HDU 2586 How far away?】LCA问题 Tarjan算法
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2586 题意:给出一棵n个节点的无根树,每条边有各自的权值。给出m个查询,对于每条查询返回节点u到v的最短路径的权值和,按查询顺序输出结果。
1064 0
|
人工智能 机器学习/深度学习
POJ 1775 (ZOJ 2358) Sum of Factorials
Description John von Neumann, b. Dec. 28, 1903, d. Feb. 8, 1957, was a Hungarian-American mathematician who made important contributions t...
1156 0

热门文章

最新文章