POJ1258 Agri-Net【最小生成树】

 

Problem: 1258 User: qq1203456195
Memory: 208K Time: 16MS
Language: C Result: Accepted

#include <stdio.h> #include <stdlib.h> #include <string.h> #define N 105 #define MAX 100005 int visited[N],closet[N],Metr[N][N]; int n; int prim() { int i,ms,next,sum,j; memset(visited,0,sizeof(visited)); for (i=0;i<n;i++) closet[i]=Metr[0][i]; visited[0]=1; sum=0; for (j=1;j<n;j++) { ms=MAX; for (i=0;i<n;i++) { if (!visited[i]&&closet[i]<ms) { ms=closet[i]; next=i; } } sum+=ms; visited[next]=1; for (i=0;i<n;i++) if (!visited[i]&&Metr[next][i]<closet[i]) closet[i]=Metr[next][i]; } return sum; } int main() { int i,j; while(scanf("%d",&n)!=EOF) { for (i=0;i<n;i++) for (j=0;j<n;j++) scanf("%d",&Metr[i][j]); printf("%d\n",prim()); } return 0; }

 

转载于:https://www.cnblogs.com/CheeseZH/archive/2012/04/15/2450739.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值