zoj_2966 Build The Electric System

来源:互联网 发布:北京知镜科技有限公司 编辑:程序博客网 时间:2024/05/01 11:09

题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1965

 

//C++代码#include<iostream>#include<queue>using namespace std;struct Edge{int u,v,w;bool operator <(const Edge a) const{return w>a.w;}}edge;int n,s[505];priority_queue<Edge> pq;void Union(int x,int y){s[y]=x;}int Find(int x){if(s[x]<0) return x;return s[x]=Find(s[x]);}void Kruskal(){int sum=0,num=0,i;for(i=0;i<n;i++) s[i]=-1;while(!pq.empty() && num<n-1){edge=pq.top();pq.pop();if(Find(edge.u)!=Find(edge.v)){Union(Find(edge.u),Find(edge.v));sum+=edge.w;num++;}}cout<<sum<<endl;while(!pq.empty()) pq.pop();}int main(){int t,m,i;cin>>t;while(t--){cin>>n>>m;for(i=1;i<=m;i++){cin>>edge.u>>edge.v>>edge.w;pq.push(edge);}Kruskal();}return 0;}


 

原创粉丝点击