bzoj1083(kruskal)
题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=1083
思路:最小生成树裸题
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <bitset>
#include <cmath>
#include <cctype>
#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
#include <queue>
#include <map>
#include <set>
#include <sstream>
#include <iomanip>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const ll inff = 0x3f3f3f3f3f3f3f3f;
#define FOR(i,a,b) for(int i(a);i<=(b);++i)
#define FOL(i,a,b) for(int i(a);i>=(b);--i)
#define REW(a,b) memset(a,b,sizeof(a))
#define inf int(0x3f3f3f3f)
#define si(a) scanf("%d",&a)
#define sl(a) scanf("%lld",&a)
#define sd(a) scanf("%lf",&a)
#define ss(a) scanf("%s",a)
#define mod ll(998244353)
#define pb push_back
#define eps 1e-6
#define lc d<<1
#define rc d<<1|1
#define Pll pair<ll,ll>
#define P pair<int,int>
#define pi acos(-1)
struct as{
int u,v,d;}a[100008];
int n,m,fa[308],ans;
bool cmp(as a,as b) {return a.d<b.d;}
int fid(int x)
{int a=x,b;while(fa[a]!=a) a=fa[a];while(x!=a) b=fa[x],fa[x]=a,x=b;return a;
}
int main()
{cin.tie(0);cout.tie(0);cin>>n>>m;FOR(i,1,n) fa[i]=i;FOR(i,1,m) si(a[i].u),si(a[i].v),si(a[i].d);sort(a+1,a+m+1,cmp);FOR(i,1,m){if(fid(a[i].u)!=fid(a[i].v)) fa[fid(a[i].u)]=fid(a[i].v),ans=a[i].d;}cout<<n-1<<" "<<ans<<endl;return 0;
}
bzoj1083(kruskal)相关推荐
- 最小生成树之克鲁斯卡尔(Kruskal)算法
学习最小生成树算法之前我们先来了解下 下面这些概念: 树(Tree):如果一个无向连通图中不存在回路,则这种图称为树. 生成树 (Spanning Tree):无向连通图G的一个子图如果是一颗包含G的 ...
- 克鲁斯卡尔(kruskal)算法代码释义
算法解释: 克鲁斯卡尔(kruskal)算法,建立最小生成树的算法,观察这个图, 步骤是依次选择权值最小的边,构成最小生成树,注意是树,所以依次选择的各边不能构成环. 实现 针对这个图,我们定义一个集 ...
- C#,最小生成树(MST)克鲁斯卡尔(Kruskal)算法的源代码
一.Kruskal算法简史 克鲁斯卡尔(Kruskal)算法是一种用来寻找最小生成树的算法,由Joseph Kruskal在1956年发表.用来解决同样问题的还有Prim算法和Boruvka算法等.三 ...
- 克鲁斯卡尔(Kruskal)算法
克鲁斯卡尔(Kruskal)算法 最小生成树 一个有 n 个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有 n 个结点,并且有保持图连通的最少的边. [1] 最小生成树可以用kruska ...
- 大话数据结构-普里姆算法(Prim)和克鲁斯卡尔算法(Kruskal)
5 最小生成树 构造连通网的最小代价生成树称为最小生成树,即Minimum Cost Spanning Tree,最小生成树通常是基于无向网/有向网构造的. 找连通网的最小生成树,经典的有两种 ...
- 数据结构——图——克鲁斯卡尔(Kruskal)算法
数据结构--图--克鲁斯卡尔(Kruskal)算法 同样的思路,我们也可以直接就以边为目标去构建,因为权值是在边上,直接去找最小权值的边来构建生成树也是很自然的想法,只不过构建时要考虑是否会形成环路而 ...
- 数据结构---克鲁斯卡尔(Kruskal)算法
数据结构(C语言)---克鲁斯卡尔(Kruskal)算法 一.总体思路 二.代码实现步骤 0.结构 1.构建边集数组 2.权值排序 3.生成最小生成树 三.完整代码 四.图解 一.总体思路 总体思路: ...
- 克鲁斯卡尔算法(Kruskal)求最小生成树(MST)过程详解
基本思想 先构造一个只含 n 个顶点.而边集为空的子图,把子图中各个顶点看成各棵树上的根结点,之后,从网的边集 E 中选取一条权值最小的边,若该条边的两个顶点分属不同的树(不构成回路),则将其加入子图 ...
- 克鲁斯卡尔算法(kruskal)
算法背景: 图中顶点A,B,C,D,E,F,G七个顶点表示七个村庄,现要修路,使得任意两个村庄之间都有通路,即都能到达(可以不是直达),问怎样修路可以使修路的总里程最短? 思路: 将所有边都连接起来, ...
最新文章
- ELK 使用4-Kafka + zookpeer
- 刚开始学Web前端,用什么软件好?
- jmeter命令行压测
- 前端跨域问题解决方案汇总
- node npm nrm nvm gnvm 相爱相杀
- FJUT3703 这还是一道数论题(二分 + hash + manacher 或者 STL + hash 或者 后缀数组 + hash)题解...
- LeetCode 444. 序列重建(拓扑排序)
- url get参数 php,怎么取得Url中Get参数
- 快速显示代码信息工具 Tokei
- 数学建模3 插值算法
- 周期串plus 水题
- layer j基本属性
- Spring 事务的那些坑,都在这里了!
- php想做一个无刷新弹窗,php+ajax实现无刷新的新闻留言系统
- vim编辑器 解决vim编辑异常
- APISpace 行驶证OCR API
- Heuristic function
- charles 本地IP地址
- FD-GAN: Pose-guided Feature Distilling GAN for Robust Person Re-identification
- python实现最小二乘拟合函数(选择三种不同基函数,基函数可改变)