wikioi p1231 最优布线问题

来源:互联网 发布:python 爬虫 伯乐在线 编辑:程序博客网 时间:2024/05/17 22:30

基本复制,这些题目也没声好说的,没什么太大的技巧。主要是运用基本算法。

#include<stdio.h>#include<iostream>#include<memory.h>#include<algorithm>using namespace std;const int MAX_N =100001;struct node {int s,t,d;}R[MAX_N]; int N;int M;long long ans=0;int T[MAX_N];int cmp(const node a,const node b){if (a.d<b.d) return 1;else return 0;}int init(){scanf("%d %d",&N,&M);int i;for (i=1;i<=M;i++)scanf("%d %d %d",&R[i].s,&R[i].t,&R[i].d);sort(R+1,R+M+1,cmp);memset(T,-1,sizeof(T));}int findR(int t){if (T[t]==-1) return t;else return T[t]=findR(T[t]);}int work(){int l=0;int i=1;while(i<=M&&l<N-1){int x=findR(R[i].s);int y=findR(R[i].t);if(x!=y){l++;ans+=R[i].d;T[x]=y;} i++;}}int put(){cout<<ans;}int main(){init();work();put();return 0; } 


 

原创粉丝点击