最小生成树&&最大生成树模板
#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 ...
随机推荐
- css中的position属性值的探究
css的position属性指定了元素的定位类型,然后通过top,botton,left,right来具体定位. 在具体定位之前必须使用position属性,否则所有的具体定位属性都无法生效. pos ...
- Unity3D在C#编程中的一些命名空间的引用及说明
System包含用于定义常用值和引用数据类型.事件和事件处理程序.接口.属性和处理异常的基础类和基类.其他类提供支持下列操作的服务:数据类型转换,方法参数操作,数学计算,远程和本地程序调用,应用程序环 ...
- 通过eclipse创建项目
基于eclipse的Java文件:项目(project)<类(class)<方法(method),即方法method必须基于class, class必须基于project. 项目是程序的源 ...
- 将自己的域名解析跳转到博客主页(GitHub中的gitpage跳转)
最近突然迷上了博客,突然又突发奇想,将自己几个月前买的现在限制的域名拿来跳转到自己的csdn博客.经过一番研究,总结---- 把自己的购买的域名(比如我买的circleyuan.top)跳转到CSDN ...
- [Leetcode 135]糖果分配 Candy
[题目] There are N children standing in a line. Each child is assigned a rating value. You are giving ...
- [Leetcode 55]跳格子JumpGame
[题目] Given an array of non-negative integers, you are initially positioned at the first index of the ...
- :代理模式:proxy
#ifndef __PROXY_H__ #define __PROXY_H__ class Subject { public: Subject(){} virtual ~Subject(){} vir ...
- Android system :led_class驱动
一.代码: leds_4412.c #include <linux/kernel.h> #include <linux/module.h> #include <linux ...
- 深入理解java虚拟机---内存分配策略(十三)
转载请注明原文地址:https://blog.csdn.net/initphp/article/details/30487407 Java内存分配策略 使用的ParNew+Serial Old收集器组 ...
- 打开和写入word文档
一. 使用win32读取word内容 # -*- coding: utf-8 -*- from win32com import client as wc def readDocx2(): word = ...