nyoj 38 布线问题

来源:互联网 发布:网络成瘾的症状 编辑:程序博客网 时间:2024/05/16 12:51

http://acm.nyist.net/JudgeOnline/problem.php?pid=38

第一道最小生成树,prime算法

 #include<stdio.h>#include<string.h>#define MAX 1<<28int map[505][505];int e,v;int prime(){bool flag[505];int path[505],i,j,sum=0;for(i=1;i<=v;i++){flag[i]=0;path[i]=map[1][i];}flag[1]=1;for(i=1;i<v;i++){int k,min=MAX;for(j=1;j<=v;j++){if(!flag[j]&&path[j]<min){min=path[j];k=j;}}sum+=path[k];flag[k]=1;for(j=1;j<=v;j++){if(!flag[j]&&path[j]>map[k][j])path[j]=map[k][j];}}return sum;}int main(){int n;scanf("%d",&n);while(n--){int a,b,c,i;scanf("%d%d",&v,&e);memset(map,9999,sizeof(map));while(e--){scanf("%d%d%d",&a,&b,&c);if(map[a][b])map[a][b]=map[b][a]=c<map[a][b]?c:map[a][b];}int min=9999999,k;           for(i=0;i<v;i++){scanf("%d",&k);if(min>k)min=k;}printf("%d\n",prime()+min);}return 0;}        


 

原创粉丝点击