N个点M条边的无向连通图,每条边有一个权值,求该图的最小生成树。

输入

第1行:2个数N,M中间用空格分隔,N为点的数量,M为边的数量。(2 <= N <= 1000, 1 <= M <= 50000)
第2 - M + 1行:每行3个数S E W,分别表示M条边的2个顶点及权值。(1 <= S, E <= N,1 <= W <= 10000)

输出

输出最小生成树的所有边的权值之和。

输入样例

9 14
1 2 4
2 3 8
3 4 7
4 5 9
5 6 10
6 7 2
7 8 1
8 9 7
2 8 11
3 9 2
7 9 6
3 6 4
4 6 14
1 8 8

输出样例

37
#include<iostream>
#include<queue>
#include<algorithm>
#include<set>
#include<cmath>
#include<vector>
#include<map>
#include<stack>
#include<bitset>
#include<cstdio>
#include<cstring>
//---------------------------------Sexy operation--------------------------//#define cini(n) scanf("%d",&n)
#define cinl(n) scanf("%lld",&n)
#define cinc(n) scanf("%c",&n)
#define cins(s) scanf("%s",s)
#define coui(n) printf("%d",n)
#define couc(n) printf("%c",n)
#define coul(n) printf("%lld",n)
#define debug(n) printf("%d_________________________________\n",n);
#define speed ios_base::sync_with_stdio(0)
#define file  freopen("input.txt","r",stdin);freopen("output.txt","w",stdout)
//-------------------------------Actual option------------------------------//
#define rep(i,a,n) for(int i=a;i<=n;i++)
#define per(i,n,a) for(int i=n;i>=a;i--)
#define Swap(a,b) a^=b^=a^=b
#define Max(a,b) (a>b?a:b)
#define Min(a,b) a<b?a:b
#define mem(n,x) memset(n,x,sizeof(n))
#define mp(a,b) make_pair(a,b)
#define pb(n)  push_back(n)
#define dis(a,b,c,d) ((double)sqrt((a-c)*(a-c)+(b-d)*(b-d)))
//--------------------------------constant----------------------------------//#define INF  0x3f3f3f3f
#define esp  1e-9
#define PI   acos(-1)
using namespace std;
typedef pair<int,int>PII;
typedef pair<string,int>PSI;
typedef  long long ll;
//___________________________Dividing Line__________________________________/int n,m;
int father[1100000];
struct node
{int x;int y;int k;
}Q[1100000];
int find(int x)
{if(father[x]==x)return x;return father[x]=find(father[x]);
}
bool cmp(node a,node b)
{return a.k<b.k;
}
int main()
{while(~scanf("%d %d",&n,&m)){int cont=0,sum=0,st=0;for(int i=0;i<m;i++){scanf("%d %d %d",&Q[i].x,&Q[i].y,&Q[i].k);cont+=Q[i].k;}sort(Q,Q+m,cmp);for(int i=1;i<=n;i++) father[i]=i;for(int i=0;i<m;i++){int tx=find(Q[i].x);int ty=find(Q[i].y);if(tx!=ty){sum+=Q[i].k;st++;father[tx]=ty;if(st==n-1)break;}}printf("%d\n",sum);}return 0;
}

51NOD 1212 无向图最小生成树相关推荐

  1. C++用Prim算法实现无向图最小生成树

    #include <iostream> using namespace std; #define INFINE 99999999//假装自己是无穷大 const int N = 1010; ...

  2. 51nod 1676 无向图同构 hash

    题意 如果一个无向图重标号后与另一个无向图完全一致(即对于任意两点,他们之间的边在两个图中都存在或都不存在),则称两个无向图同构. 给定两个n个点m条边的无向图,判定两个无向图是否同构. n<= ...

  3. 51nod--1212 最小生成树

    题目: 1212 无向图最小生成树 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注 N个点M条边的无向连通图,每条边有一个权值,求该图的最小生成树. Inpu ...

  4. 51nod 基础题题解(全)

    基础题(40): 1000 A + B 1005 大数加法 1006 最长公共子序列Lcs 1018 排序 1019 逆序数 1027 大数乘法 1046 A^B Mod C 1057 N的阶乘(大数 ...

  5. 怎么证明权重不相同的加权无向图的最小生成树是唯一的 (图论)

    转自:https://blog.csdn.net/liangzhaoyang1/article/details/51602926 设G是所有边权均不相同的无向联通图. 证明一: 首先,易证图G中权值最 ...

  6. 图的最小生成树和最短路径算法思路总结(Prim,Kruskal,Dijkstra,Floyd)

    带权无向图->最小生成树算法->Prim算法: 思路: 首先,我们先设置两个集合,U_{}:一个用来放最小生成树的顶点,T_{}:一个用来放最小生成树的边.选取最开始的点V_0,将V_0放 ...

  7. acm算法模板(1)

    1. 几何 4 1.1 注意 4 1.2 几何公式 4 1.3 多边形 6 1.4 多边形切割 9 1.5 浮点函数 10 1.6 面积 15 1.7 球面 16 1.8 三角形 17 1.9 三维几 ...

  8. AcWing算法提高课 Level-3 第三章 图论

    单源最短路的建图方式 1129. 热浪 思路 :单源最短路算法中除了bellmanford一般不用以外,普D为O(n2)O(n^2)O(n2),优D为O(m∗logn)O(m*logn)O(m∗log ...

  9. 图论 —— 生成树 —— 最小瓶颈路

    [概述] 最小瓶颈路是指:在一张无向图上,对于点 u.v 找出从 u.v 的一条简单路径,使得路径上行所有边中最大值最小. 根据查询次数不同,最小瓶颈路问题可分为单次查询和多次查询. [单次查询] 由 ...

最新文章

  1. Linux grep 命令初步学习
  2. 网络与IO知识扫盲(六):多路复用器
  3. linux的apche支持PHP,Linux下apache支持PHP配置
  4. 自然语言理解——introduction
  5. c语言时间算法如何以毫秒显示,C语言时间的方法.doc
  6. 郑杰 | 如何拿回我们自己的医疗数据?
  7. 珠海小学计算机比赛,欢聚一堂 共叙佳话 —— 参加珠海市中小学信息技术工作年会纪要...
  8. 清除定时器 和 vue 中遇到的定时器setTimeout setInterval问题
  9. mysql BDB支持表锁吗_mysql 表锁问题
  10. 怎么用HD Tune检测硬盘坏道
  11. 一维搜索——进退法matlab实现(含代码)
  12. java日期格式化 类_Java日期格式化(DateFormat类)
  13. 基于自抗扰控制的压力环控制算法研究
  14. 发现京东客服的一个死循环bug
  15. 2018年系统架构设计师案例分析真题及详细答案解析
  16. Cannot connenct to relay host smtp.163.com (php邮件发送失败)
  17. 初始C语言(初学者福音)
  18. 电脑上没有蓝牙图标找不到了?
  19. 国开大学 C语言程序 形考任务4,[国家开放大学] 国开电大人体生理学形考任务4...
  20. C#中WinFrom保存文件SaveFileDialog类的使用方法

热门文章

  1. mac电脑访问另一台mac共享文件
  2. layoutSubviews 详解
  3. 解决jsp两种提交方式乱码 的方法
  4. 【JAVA基础】四舍五入之7中舍入法
  5. android项目闪屏页细节
  6. HR数据抽取:通过 Read Master Data 转换规则读取时间相关主属性数据
  7. Java线程:创建与启动
  8. IOS学习笔记——Objective-c基础(一)
  9. 一段能用来统计ip访问的代码(自用)包括所在地
  10. mysql query browser的使用_影响MySQL性能的配置参数