2017-09-18 21:53:00

writer:pprp

代码如下:

/*
@theme: kruskal
@writer:pprp
@date:2017/8/19
@begin:21:19
@end:21:50
@declare:
*/ #include <bits/stdc++.h> using namespace std;
const int maxn = ;
const int INF = ;
int n , e;
struct node
{
int x, y, w;
};
vector<node> vt;
int dad[maxn];//每个结点的父亲集合 bool cmp(const node& n1, const node& n2)
{
return n1.w < n2.w;
} int getfather(int x)
{
if(x == dad[x])
return x;
dad[x] = getfather(dad[x]);
return dad[x];
} void kruskal()
{
for(int i = ; i <= n ;i++)
dad[i] = i;
int cnt = , ans = ;
for(int i = ; i <= e ;i++)
{
if(getfather(vt[i-].x)!=getfather(vt[i-].y))
{
ans += vt[i-].w;
dad[getfather(vt[i-].x)] = vt[i-].y;
cnt++;
if(cnt == n)
{
cout << ans << endl;
return ;
}
}
}
return ;
} int main()
{
freopen("in.txt","r",stdin);
cin >> n >> e;
for(int i = ; i < e; i++)
{
node newnode;
cin >>newnode.x >> newnode.y >> newnode.w;
vt.push_back(newnode);
}
sort(vt.begin(),vt.end(),cmp);
kruskal(); return ;
}

最新文章

  1. jquery.datatable.js与CI整合 异步加载(大数据量处理)
  2. PHP-Redis扩展使用手册(三)
  3. js 中使用el表达式 关键总结:在js中使用el表达式一定要使用双引号
  4. [Voice communications] 让音乐响起来
  5. windows下PHP5.5.6+Apache2.4.7配置
  6. 利用VBA查找excel中一行某列第一次不为空与最后一列不为空的列数
  7. iOS-绘图(Quartz2D)的简单使用(原创)
  8. JMX初体验
  9. AP模块的发票过账后关联对应的凭证编号。
  10. c#使用DocX给word添加目录TOC
  11. poj 3294 Life Forms(后缀数组)
  12. 实战 Spring MVC接入支付宝即时到账 (部分代码)
  13. php 7 正式发版
  14. poj1459 Power Network --- 最大流 EK/dinic
  15. 深入 理解 Statement 和 PreparedStatement
  16. IE7,8,9兼容性处理
  17. PHP面向对象编程 对象的基本概念 PHP面向对象的基本实践 PHP面向对象的高级实践 PHP面向对象的特殊实践
  18. TLD网络资源汇总--学习理解之(四)
  19. [Codeforces 920E]Connected Components?
  20. 如何向android studio中导入第三方类库

热门文章

  1. postfix邮箱服务器修改附件大小限制遇到的问题与解决
  2. XAF 如何从Excel复制多个单元格内容到GridView(收藏)
  3. window下的开发环境:常用软件
  4. java-mybaits-00501-案例-映射分析-订单商品数据模型
  5. python logging模块介绍
  6. MongoDB主从复制+集群
  7. django 登陆增加除了用户名之外的手机和邮箱登陆
  8. Linux服务器access_log日志分析及配置详解(一)
  9. co.js异步回调原理理解
  10. 『NiFi 学习之路』自定义 —— 组件的自定义及使用