hdu 1233 最小生成树

来源:互联网 发布:c语言clear函数 编辑:程序博客网 时间:2024/06/06 08:51

AC代码如下:

#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;#define MAX 0x3f3f3f3fint main(){int weight[100][100];int lowcost[100];int N, ans;while( scanf( "%d", &N ) , N ){memset( weight, 0, sizeof( weight ) );for( int i = 1; i <= N*(N-1)/2; i++ ){int temp1, temp2, temp3;cin >> temp1 >> temp2 >> temp3;weight[temp1][temp2] = temp3;weight[temp2][temp1] = temp3;}for( int i = 2; i <= N; i++ ){lowcost[i] = weight[1][i];}lowcost[1] = -1;ans = 0;for( int i = 2; i <= N; i++ ){int mindis = MAX;int k = 1;for( int j = 2; j <= N; j++ ){if( lowcost[j] < mindis && lowcost[j] != -1 ){mindis = lowcost[j];k = j;}}ans += mindis;lowcost[k] = -1;for( int j = 1; j <= N; j++ ){if( weight[k][j] < lowcost[j] ){lowcost[j] = weight[k][j];}}}cout << ans << endl;}return 0;}


 

原创粉丝点击