#include<bits/stdc++.h>
using namespace std;
int n,m;
struct edge
{
int x;
int y;
int len;
}edges[];
bool up1(edge a,edge b)
{
return a.len<b.len;
}
bool down1(edge a,edge b)
{
return a.len>b.len;
}
int parent[];
int ffind(int x)
{
if(x==parent[x]) return x;
else return parent[x]=ffind(parent[x]);
}
void sset()
{
for(int i=;i<=n;i++)
{
parent[i]=i;
}
}
int kruskal()
{
sset(n);
int ans=;
int num=;
for(int i=;i<=m;i++)
{
int a1=ffind(edges[i].x);
int a2=ffind(edges[i].y);
if(a1!=a2)
{
ans=ans+edges[i].len;
parent[a1]=a2;
num++;
}
}
if(num==n-) return ans;
else return ;
}
int main()
{
cin>>n>>m;
for(int i=;i<=m;i++)
{
cin>>edges[i].x>>edges[i].y>>edges[i].len;
}
sort(edges+,edges+m+,up1);
int min1=kruskal();
sort(edges+,edges+m+,down1);
int max1=kruskal();
if(min1) cout<<min1<<endl;
if(max1) cout<<max1<<endl;
return ;
}

最小生成树&&最大生成树模板的更多相关文章

  1. 最小生成树(次小生成树)(最小生成树不唯一) 模板:Kruskal算法和 Prim算法

    Kruskal模板:按照边权排序,开始从最小边生成树 #include<algorithm> #include<stdio.h> #include<string.h> ...

  2. 图的最小生成树prim算法模板

    用prim算法构建最小生成树适合顶点数据较少而边较多的图(稠密图) prim算法生成连通图的最小生成树模板伪代码: G为图,一般为全局变量,数组d为顶点与集合s的最短距离 Prim(G, d[]){ ...

  3. 最小生成树(MST)[简述][模板]

    Prim(添点法) 1. 任选一点(一般选1), 作为切入点,设其与最小生成树的距离为0(实际上就是选一个点,将此树实体化),. 2. 在所有未选择的点中选出与最小生成树距离最短的, 累计其距离, 并 ...

  4. 最小生成树-prim算法模板

    题目描述 如题,给出一个无向图,求出最小生成树,如果该图不连通,则输出orz 输入输出格式 输入格式: 第一行包含两个整数N.M,表示该图共有N个结点和M条无向边.(N<=5000,M<= ...

  5. BZOJ 1016 最小生成树计数 【模板】最小生成树计数

    [题解] 对于不同的最小生成树,每种权值的边使用的数量是一定的,每种权值的边的作用是确定的 我们可以先做一遍Kruskal,求出每种权值的边的使用数量num 再对于每种权值的边,2^num搜索出合法使 ...

  6. 最小生成树prime算法模板

    #include<stdio.h> #include<string.h> using namespace std; int map[505][505]; int v, e; i ...

  7. 最小生成树prim算法———模板

    codevs.cn 最优布线问题 #include<cstdio>#include<cstring> bool u[101]; int g[101][101],minn[101 ...

  8. gcd最大生成树模板

    出处: ACM International Collegiate Programming Contest, Egyptian Collegiate Programming ContestArab Ac ...

  9. Poj1258 Agri-Net (最小生成树 Prim算法 模板题)

    题目链接:http://poj.org/problem?id=1258 Description Farmer John has been elected mayor of his town! One ...

随机推荐

  1. Win10系列:JavaScript 项目模板和项模板

    使用Visual Studio 开发Windows应用商店应用时,通过其提供的模板可以帮助我们快速地创建一个应用.其中,在新建一个Windows应用商店应用程序项目时可以在项目模板中选择所需要的模板类 ...

  2. learning ddr mode register MR3

  3. SpringBoot入门示例

    SpringBoot入门Demo SpringBoot可以说是Spring的简化版.配置简单.使用方便.主要有以下几种特点: 创建独立的Spring应用程序 嵌入的Tomcat,无需部署WAR文件 简 ...

  4. Java遍历集合的几种方法分析(实现原理、算法性能、适用场合)

    概述 Java语言中,提供了一套数据集合框架,其中定义了一些诸如List.Set等抽象数据类型,每个抽象数据类型的各个具体实现,底层又采用了不同的实现方式,比如ArrayList和LinkedList ...

  5. 线程queue与进程queue

    进程queue: from multiprocessing import Queue,Process def func(qq): qq.put('function:我要放数据,给你来取...') if ...

  6. Cracking The Coding Interview 3.2

    //How would you design a stack which, in addition to push and pop, also has a function min which ret ...

  7. 7.7 C++基本关联式容器

    参考:http://www.weixueyuan.net/view/6404.html 总结: 基本的关联式容器主要有:set.multiset.map和multimap,这四种容器可以分为两组:ma ...

  8. 通过powerdesiner导出sql,通过sql转mysql为oracle

    1.导出sql文件 Database-->generate database-->确定 执行完就可以看到生成的语句了 2.将mysql的PDM转换为oracle File-->rev ...

  9. Java语法基础学习DayThree

    一.流程控制语句补充 1.switch语句 格式: switch(表达式) { case 值1: 语句体1; break; case 值2: 语句体2; break; ... default: 语句体 ...

  10. DataTable数据统计方法

    调用方法: public object Compute(string strExpression,string strFilter) 参数说明: strExpression:要计算的表达式字符串,基本 ...