杭电hdu 1233 还是畅通工程 prim

来源:互联网 发布:淘宝代购太平鸟真假 编辑:程序博客网 时间:2024/05/22 13:41

//hdu_1233#include <stdio.h>#include <string.h>#define INF 0x3f3f3f3fint n;int map[101][101];void init(){int i, j;for(i = 1; i <= n; i ++){for(j = 1; j <= n; j ++){map[i][j] = INF;}}}int prim(){int lowcost[101], visited[101];int minc, i, j;int res = 0, mnt;memset(visited, 0, sizeof(visited));for(i = 1; i <= n; i ++){lowcost[i] = map[1][i];}visited[1] = 1;for(i = 1; i < n; i ++){minc = INF;mnt = -1;for(j = 1; j <= n; j ++){if(visited[j] == 0 && minc > lowcost[j]){minc = lowcost[j];mnt = j;}}if(mnt == -1)return -1;res += minc;visited[mnt] = 1;for(j = 1; j <= n; j ++){if(visited[j] == 0 && lowcost[j] > map[mnt][j]){lowcost[j] = map[mnt][j];}}}return res;}int main(){int a, b, p, tn, i;while(scanf("%d", &n)&&n){init();tn = n*(n-1)/2;for(i = 0; i < tn; i ++){scanf("%d%d%d", &a, &b, &p);map[a][b] = map[b][a] = p;}printf("%d\n", prim());}return 0;}

http://acm.hdu.edu.cn/showproblem.php?pid=1233

不多说


原创粉丝点击