【模板】 最小生成树
prim:
给出一个无向图,求出最小生成树,如果该图不连通,则输出impossible。
#include<bits/stdc++.h> using namespace std; const int maxm = 200005; const int inf = 0x3f3f3f3f; struct edge{int v, w, next; }e[maxm << 1]; int cnt, n, m, sum, t, p, now = 1; int dis[5005], head[maxm], vis[5005]; int a, b, c;void add(int uu, int vv, int ww) {e[++cnt].v = vv;e[cnt].w = ww;e[cnt].next = head[uu];head[uu] = cnt; } int main() {cin >> n >> m;for(int i = 1; i <= m; i++){cin >> a >> b >> c;add(a, b, c); add(b, a, c);}for(int i = 1; i <= n; i++)dis[i] = inf;for(int i = head[1]; i; i = e[i].next)dis[e[i].v] = min(e[i].w, dis[e[i].v]);while(++t < n){vis[now] = 1;int minn = inf;now = -1;for(int i = 1; i <= n; i++){if(!vis[i] && minn > dis[i]){minn = dis[i];now = i;}}if(now == -1) {cout << "impossible";return 0;}sum += minn;for(int i = head[now]; i; i = e[i].next){if(!vis[e[i].v] && e[i].w < dis[e[i].v])dis[e[i].v] = e[i].w;}}cout << sum;return 0; }
给出一个无向图,求出最小生成树。不用判断是否连通
#include<bits/stdc++.h> using namespace std; const int maxm = 200005; const int inf = 0x3f3f3f3f; struct edge{int v, w, next; }e[maxm << 1]; int cnt, n, m, sum, t, p, now = 1; int dis[5005], head[maxm], vis[5005]; int a, b, c;void add(int uu, int vv, int ww) {e[++cnt].v = vv;e[cnt].w = ww;e[cnt].next = head[uu];head[uu] = cnt; } int main() {cin >> n >> m;for(int i = 1; i <= m; i++){cin >> a >> b >> c;add(a, b, c); add(b, a, c);}for(int i = 1; i <= n; i++)dis[i] = inf;for(int i = head[1]; i; i = e[i].next)dis[e[i].v] = min(e[i].w, dis[e[i].v]);while(++t < n){vis[now] = 1;int minn = inf;for(int i = 1; i <= n; i++){if(!vis[i] && minn > dis[i]){minn = dis[i];now = i;}}if(dis[now] == inf) {cout << "orz";return 0;}sum += minn;for(int i = head[now]; i; i = e[i].next){if(!vis[e[i].v] && e[i].w < dis[e[i].v])dis[e[i].v] = e[i].w;}}cout << sum;return 0; }
两者差别在于每次循环边时对now的处理
转载于:https://www.cnblogs.com/lovezxy520/p/11615273.html
【模板】 最小生成树相关推荐
- 最小生成树(模板题:最优布线问题,繁忙的都市,联络员)(C++)
文章目录 序言 正文 First Promble 最优布线问题 时间限制: 1000 m s 1000 ms 1000ms 空间限制: 262144 K B 262144 KB 262144KB 题目 ...
- 【图论专题】最小生成树的扩展应用
整理的算法模板合集: ACM模板 最小生成树的扩展应用 能用kruskal打死不用prim kruskal是要把所有的边都遍历一遍 图论中的超级源点就比较常用,要时刻想到它 题目列表: 题目 算法 A ...
- 剑鱼行动(最小生成树)
剑鱼行动 Description 给出N个点的坐标,对它们建立一个最小生成树,代价就是连接它们的路径的长度,现要求总长度最小.N的值在100以内,坐标值在[-10000,10000].结果保留二位小数 ...
- 最小生成树模板总结--PrimKruskal
一.最小生成树:连通N个点的边权值总和最小的树. 二.时间复杂度 Prim算法:时间复杂度O(|V|2+|E|),O(|E|log|V|) Kruskal算法:时间复杂度O(|E|log|E|) 算法 ...
- 最小生成树 洛谷P3366【模板】最小生成树 洛谷P2820 局域网
嗯... 理解生成树的概念: 在一幅图中将所有n个点连接起来的n-1条边所形成的树. 最小生成树: 边权之和最小的生成树. 最小瓶颈生成树: 对于带权图,最大权值最小的生成树. 如何操作? 1.Pri ...
- kuangbin 最小生成树专题 - ZOJ - 1586 QS Network (朴素 Prim算法 模板题)
kuangbin 最小生成树专题 - ZOJ - 1586 QS Network (朴素 Prim算法 模板题) 总题单 week 3 [kuangbin带你飞] 题单 最小生成树 + 线段树 Cli ...
- 最小生成树 算法思想及模板代码
问题描述及解法分类 一般不用堆优化版的Prim算法,直接用朴素版的Prim算法. 对于稀疏图而言,点多,边少,适合用克鲁斯卡尔算法 对于稠密图而言,点少,边多,适合用普利姆算法 Prim算法 算法思想 ...
- 最小生成树模板 POJ——1258
最小生成树是一个比较简单数据结构,形成最小生成树的方式有两种. 最小生成树是有图生成树,保证树的每条边的权值之和最小的生成树就叫做最小生成树,这一类的题目起初比较基础,主要是熟悉模板,POJ 1258 ...
- Kruskal(克鲁斯卡尔) 最小生成树 算法详解+模板
最小生成树 在含有n个顶点的连通图中选择n-1条边,构成一棵极小连通子图,并使该连通子图中n-1条边上权值之和达到最小,则称其为连通网的最小生成树. 例如,对于如上图G4所示的连通网可以有多棵权值总和 ...
- 最小生成树-prim算法模板
题目描述 如题,给出一个无向图,求出最小生成树,如果该图不连通,则输出orz 输入输出格式 输入格式: 第一行包含两个整数N.M,表示该图共有N个结点和M条无向边.(N<=5000,M<= ...
最新文章
- pytorch方法,Tensor及其基本操作_重点
- 【图解】算法原理!通俗理解机器学习算法
- activity使用dialog主题
- 计算机网络部分(共44题),2018年10月自考04741计算机网络原理试卷及答案
- 【转贴】大型ORACLE数据库优化设计方案
- Spring MVC:表单处理卷。 4 –单选按钮
- 1+X web中级 Laravel学习笔记——Eloquent ORM查询、更新、删除、新增
- leetcode刷题:三数之和
- win10中cmd拒绝访问授权
- 转:c++builder读写INI文件
- 125条常见的java面试笔试题大汇总1
- 异构SOA系统架构之Asp.net实现(兼容dubbo)
- SWAT模型 建模方法、实例应用、高级进阶
- eclipse各版本对应JDK版本要求
- matlab波特率,波特率定义及波特率计算公式小结
- SharePoint Designer 2010 简介 - SharePoint Designer - Office.com
- 第五章 执行计划详解
- 悟空问答 模板 html,WeCenter仿悟空问答模板
- Axure RP 9基础教程(四)-文件及文件设置
- 服务器集群可视化监控-Prometheus+Grafana
热门文章
- EduCoder 机器学习 逻辑回归
- Python中带下划线_的变量和函数命名的用法
- Python3 关键字nonlocal和global的用法与区别
- 2019第十届蓝桥杯C/C++ A组省赛 —— 第三题: 最大降雨量
- Go 语言切片(Slice)
- 数据挖掘(data mining),机器学习(machine learning),和人工智能(AI)的区别是什么? 数据科学(data science)和商业分析(business analytics
- 【C++】Visual Studio教程(八) -修复 Visual Studio
- 【STM32】OLED简介
- c语言中lookup函数功能,Lookup函数详解
- 2007标注没有文字_应用技巧:CAD在机械工程制图中尺寸标注