**链接:****传送门! **

题意:一个裸最小生成树,采用Kruskal。


/*************************************************************************
> File Name: poj1258.cpp
> Author: WArobot
> Blog: http://www.cnblogs.com/WArobot/
> Created Time: 2017年06月19日 星期一 18时20分30秒
************************************************************************/ #include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std; const int MAX_N = 110;
struct edge{
int from , to , cost;
}E[MAX_N*MAX_N]; int par[MAX_N]; void init_union_find_set() { for(int i = 0 ; i < MAX_N ; i++) par[i] = i; }
int find(int x) { return x == par[x] ? x : par[x] = find(par[x]); }
bool same(int x,int y) { return find(x) == find(y); }
void union_data(int x,int y){ x = find(x); y = find(y); if(x!=y) par[y] = x; } bool cmp(edge a,edge b){
return a.cost < b.cost;
} int Kruskal(int n , int size){
init_union_find_set();
sort(E,E+size,cmp);
int ret = 0;
for(int i = 0 ; i < size ; i++){
if( !same(E[i].from,E[i].to) ){
union_data(E[i].from,E[i].to);
ret += E[i].cost;
}
}
return ret;
} int main(){
int n , cost;
while(~scanf("%d",&n)){
int cnt = 0;
memset(E,0,sizeof(E));
for(int i = 0 ; i < n ; i++){
for(int j = 0 ; j < n ; j++){
scanf("%d",&cost);
if(cost){ E[cnt].from = i , E[cnt].to = j , E[cnt++].cost = cost; }
}
}
int ret = Kruskal(n,cnt);
printf("%d\n",ret);
}
return 0;
}

最新文章

  1. 递归 CTE
  2. [家里蹲大学数学杂志]第013期2010年西安偏微分方程暑期班试题---NSE,非线性椭圆,平均曲率流,非线性守恒律,拟微分算子
  3. C#winform控制textbox输入只能为数字
  4. css 包含的图片和style=&quot;display:none&quot;可以避免图片加载,可以节省网络流量
  5. wxPython
  6. 09_android入门_采用android-async-http开源项目的GET方式或POST方式实现登陆案例
  7. mysql 获取设置环境变量
  8. adb device出现error:unknown host service
  9. hdu 1092 A+B for Input-Output Practice (IV)
  10. javaweb项目的优化 - 几番思念
  11. [ An Ac a Day ^_^ ] [kuangbin带你飞]专题四 最短路练习 POJ 2387 Til the Cows Come Home
  12. 团队作业4——第一次项目冲刺(Alpha版本) 4.23
  13. POJ 2398 Toy Storage(叉积+二分)
  14. 第一篇 Flask初始
  15. js获取今天是星期几
  16. eleemnt-ui修改主题颜色
  17. convert 函数的使用
  18. samba速度调优
  19. HIHOcoder 1441 后缀自动机一&#183;基本概念
  20. 添加BAUD_4800

热门文章

  1. Seaside HDU 3665 【Dijkstra】
  2. RubyMine快捷键
  3. 最简单的基于FFmpeg的移动端样例:IOS 推流器
  4. Spark MLlib Deep Learning Deep Belief Network (深度学习-深度信念网络)2.2
  5. hdoj--1829--A Bug&#39;s Life(带权并查集)
  6. linux 标准输出和后台运行
  7. springboot的推荐模板引擎-Thymeleaf
  8. window 10 多版本激活工具
  9. jqGrid 排序
  10. 5.Project常用操作介绍