最小生成树&&最大生成树模板
#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 ;
}
最小生成树&&最大生成树模板的更多相关文章
- 最小生成树(次小生成树)(最小生成树不唯一) 模板:Kruskal算法和 Prim算法
Kruskal模板:按照边权排序,开始从最小边生成树 #include<algorithm> #include<stdio.h> #include<string.h> ...
- 图的最小生成树prim算法模板
用prim算法构建最小生成树适合顶点数据较少而边较多的图(稠密图) prim算法生成连通图的最小生成树模板伪代码: G为图,一般为全局变量,数组d为顶点与集合s的最短距离 Prim(G, d[]){ ...
- 最小生成树(MST)[简述][模板]
Prim(添点法) 1. 任选一点(一般选1), 作为切入点,设其与最小生成树的距离为0(实际上就是选一个点,将此树实体化),. 2. 在所有未选择的点中选出与最小生成树距离最短的, 累计其距离, 并 ...
- 最小生成树-prim算法模板
题目描述 如题,给出一个无向图,求出最小生成树,如果该图不连通,则输出orz 输入输出格式 输入格式: 第一行包含两个整数N.M,表示该图共有N个结点和M条无向边.(N<=5000,M<= ...
- BZOJ 1016 最小生成树计数 【模板】最小生成树计数
[题解] 对于不同的最小生成树,每种权值的边使用的数量是一定的,每种权值的边的作用是确定的 我们可以先做一遍Kruskal,求出每种权值的边的使用数量num 再对于每种权值的边,2^num搜索出合法使 ...
- 最小生成树prime算法模板
#include<stdio.h> #include<string.h> using namespace std; int map[505][505]; int v, e; i ...
- 最小生成树prim算法———模板
codevs.cn 最优布线问题 #include<cstdio>#include<cstring> bool u[101]; int g[101][101],minn[101 ...
- gcd最大生成树模板
出处: ACM International Collegiate Programming Contest, Egyptian Collegiate Programming ContestArab Ac ...
- Poj1258 Agri-Net (最小生成树 Prim算法 模板题)
题目链接:http://poj.org/problem?id=1258 Description Farmer John has been elected mayor of his town! One ...
随机推荐
- linux的命令:
uname -r linux的版本号 uname -a 显示系统名.节点名称.操作系统的发行版号.操作系统版本.运行系统的机器 ID 号 cd /dev/ 切换到根目录: ls 查看根目录文件
- mongdb使用
下载mongodb数据库 https://www.mongodb.com/ 根据自己的电脑系统下载相应的版本 安装并且打开你下载的数据库 打开数据库bin文件夹: cd soft/ ...
- 微信授权(Net Mvc)
项目结构 WeiXinController.cs using System; using System.Collections.Generic; using System.Linq; using Sy ...
- Object value iterator:值迭代器
// ES5 // 对于数组,使用标准的 for 循环,其实这种方式并不是在遍历值,而是遍历下标来指向值!ES5中增加了一些数组迭代器:forEach.every.some // forEach:遍历 ...
- bzoj1692
题解: 二分最近的不相同 然后hash判断是否相同 然后贪心 代码: #include<bits/stdc++.h> using namespace std; #define ull un ...
- 读书笔记 C# 接口中的索引器之浅析
在C#中,可以在类.结构或接口中用this关键字声明索引器,在索引器内部用get或set访问器访问类中集合的某项值.因此可以将索引器看作是类的属性一样去定义.索引器常用定义格式如下: public i ...
- python第一个程序HelloWorld
在写第一个python程序之前,我们还需要了解的一个东西就是python解释器 解释器,顾名思义,就是解释一段代码的机器,程序运行的平台,例如Java的解释器就是jdk. 我们在写好的python代码 ...
- Java基础第4天
程序结构(按执行流程划分) 顺序结构:整体上程序是顺序结构. 分支结构:if(如果有else,则必有一个会执行)switch-case 循环结构:for while do-while ,重点:嵌套循环 ...
- 关于makefile的生成原理以及make相关命令的使用
一.生成configure过程中各文件之间的关系图 二.详细介绍 autoscan: 扫描源代码以搜寻普通的可移植性问题,比如检查编译器,库,头文件等,生成文件configure.scan,它是con ...
- kbmMWLog输出日志到控制台或指定Grid
刚看到有人在kbmMW News问,有没有简单的方法,输出日志到Console窗口或者一个实际的Grid? 作者对此做回复,大意是这样: 对于输出日志到一个Memo,使用TkbmMWStringsLo ...