codevs 1231 最优布线问题
来源:互联网 发布:nginx 时间函数 编辑:程序博客网 时间:2024/04/30 07:55
//prim#include<iostream>#include<cstdio>#include<cstring>#include<vector>#include<queue>using namespace std;const int M=100000+50;vector<int> tu[M],cost[M];int n,m,used[M],x,y,z;long long ans;priority_queue<pair<int,int> ,vector< pair<int,int> >,greater<pair<int,int> > > Q;void build(int f,int t,int v){ tu[f].push_back(t); cost[f].push_back(v); return ;}void prim(int x){ used[x]=1; for(int i=0;i<tu[x].size();i++){ if(used[tu[x][i]]==0) Q.push(make_pair(cost[x][i],tu[x][i])); } while(!Q.empty()){ pair<int,int> u=Q.top(); Q.pop(); if(used[u.second]==1) continue; int v=u.second; used[v]=1; ans+=u.first; for(int i=0;i<tu[v].size();i++){ if(used[tu[v][i]]==0) Q.push(make_pair(cost[v][i],tu[v][i])); } }}int main(){ scanf("%d%d",&n,&m); for(int i=1;i<=m;i++){ scanf("%d%d%d",&x,&y,&z); build(x,y,z); build(y,x,z); } prim(1); printf("%lld",ans); return 0;}
//kruskal#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int N=100000+50;struct node{ long long f,t,v;}m[N];long long fa[N];long long n,z,ins,p;long long ans;bool cmp(node a,node b){ return a.v<b.v;}int find(long long x){ if(fa[x]==x) return x; else return fa[x]=find(fa[x]);}void init(){ for(int i=1;i<=n;i++) fa[i]=i;}int main(){ scanf("%lld%lld",&n,&p); init(); for(int i=1;i<=p;i++){ scanf("%lld%lld%lld",&m[i].f,&m[i].t,&m[i].v); } sort(m+1,m+p+1,cmp); for(int i=1;i<=p;i++){ long long x=m[i].f;long long y=m[i].t; fa[x]=find(fa[x]);fa[y]=find(fa[y]); if(fa[x]!=fa[y]){ fa[fa[x]]=fa[y]; ans+=m[i].v; ins++; if(ins==n-1) { printf("%lld",ans); return 0; } } }}
阅读全文
0 0
- 【codevs 1231】 最优布线问题
- CODEVS 1231最优布线问题
- Codevs 1231 最优布线问题
- CODEVS 1231 最优布线问题
- codevs 1231 最优布线问题
- Codevs 1231 最优布线问题
- 【codevs 1231】最优布线问题
- 【Codevs】1231 最优布线问题 && kruskal模板
- codevs 1231_最优布线问题_最小生成树
- codevs 1231 最优布线问题(最小生成树模板)
- codevs 1231 最优布线问题 并查集 解题报告
- 1231 最优布线问题
- WikiOI 1231 最优布线问题
- wikioi 1231 最优布线问题
- wikioi 1231 最优布线问题
- 1231 最优布线问题 -- kruskal
- 1231 最优布线问题 kruskal
- 最优布线问题
- Java判断单链表是否有环的两种实现方法
- Maven详解
- Unity3D架构之PureMVC
- JavaSE_笔试题_简答题1
- java中的函数定义及其使用
- codevs 1231 最优布线问题
- 遍历数组对象,根据已知信息找到对应的对象
- MFC界面编写
- Redis详解
- kotlin的入口函数
- 玲珑杯 1146 图论你先敲完模板(DP)
- java基础--1.基本语法
- java.sql.Date数据库日期类型计算及与java.util.Date的转换
- C#实现实时时间显示