#include<bits/stdc++.h>
using namespace std;
const int Inf = 0x3f3f3f3f;
const int N = 1e4 + 10;
int n, m;
int a[N][N];
int prim(){
int mst[N], low[N], ans = 0;
mst[1] = 0;
for(int i = 2; i <= n; i++){
low[i] = a[1][i];
mst[i] = 1;
}
for(int i = 2; i <= n; i++){
int minx = Inf, minid;
for(int j = 2; j <= n; j++){
if(low[j] < minx && low[j]){
minid = j;
minx = low[j];
}
}
ans += minx;
low[minid] = 0;
for(int j = 2; j <= n; j++){
if(a[minid][j] < low[j]){
low[j] = a[minid][j];
mst[j] = minid;
}
}
}
return ans;
}
int main(){
while(scanf("%d%d", &n, &m) == 2){
for(int i = 1; i <= n; i++){
for(int j = 1; j <= n; j++){
a[i][j] = Inf;
}
}
for(int i = 0; i < m; i++){
int u, v, w;
scanf("%d%d%d", &u, &v, &w);
a[u][v] = a[v][u] = w;
}
printf("%d\n", prim());
}
}
/*
6 10
1 2 6
1 3 1
1 4 5
2 3 5
2 5 3
3 4 5
3 5 6
3 6 4
4 6 2
5 6 6
*/相关推荐
最小生成树模板 洛谷 Prim算法和Kruskal算法
洛谷-最小生成树模板 题目描述 如题,给出一个无向图,求出最小生成树,如果该图不连通,则输出orz。 输入格式 第一行包含两个整数N,M,表示该图共有N个结点和M条无向边。 接下来MM行每行包含三个整数Xi,Yi,Zi ,表示有一条长度为Zi的无向边连接结点 Xi,Yi。 输出格式 如果该图连通,则输出一个整数表示最小生成树的各边的长度之和。如果该图不连通...
最小生成树——Prim算法(详细图解)
最小生成树的概念 在一给定的无向图G = (V, E) 中,(u, v) 代表连接顶点 u 与顶点 v 的边,而 w(u, v) 代表此的边权重,若存在 T 为 E 的子集(即)且为无循环图,使得的 w(T) 最小,则此 T 为 G 的最小生成树。最小生成树其实是最小权重生成树的简称。 ...
最小生成树-prim、kruskal算法
学习之前建议温习一下迪杰斯特拉算法和并查集~先简单认识下最小生成树:最小生成树是,即:以最小的成本(边的权值)将图中所有节点链接到一起。图中有n个节点,那么一定可以用n-1条边将所有节点连接到一起。那么就是最小生成树算法的任务所在。下面我们以一道模板题来讲解如何解决这个问题~~
prim算法求最小生成树
最小生成树(Minimum Spanning Tree,简称MST)是图论中的一个概念。给定一个连通的无向图,最小生成树是指包含图中所有顶点的一棵树,且该树的所有边的权重之和最小。连通性:最小生成树必须包含图中的所有顶点,并且通过边将它们连接起来,确保整个图是连通的,即任意两个顶点之间都有路径。(一颗有 n 个顶点的生成树有且仅有 n−1 条边,如果生成树中再添加一条边,则必定成环。无环:最小生成树是一棵树,所以不能包含任何环(即回路)。最小权重:最小生成树的边权重之和应当尽可能地小。
FPGA以太网开发实战:YT8511 PHY芯片MDIO接口配置全流程(附Verilog代码)
本文详细介绍了FPGA以太网开发中YT8511 PHY芯片MDIO接口的配置全流程,包括MDIO接口技术解析、Verilog状态机设计、核心代码实现细节及实战调试经验。通过提供经过验证的Verilog代码和优化策略,帮助开发者快速掌握以太网PHY芯片配置技术,提升通信系统性能。
5G核心网NAS消息解析:从协议字段到实际抓包分析(附Wireshark示例)
本文深入解析5G核心网NAS消息的实战分析方法,从协议字段解读到实际Wireshark抓包诊断。通过详解扩展协议鉴别器、安全头类型、流程事务标识等核心字段,并结合注册流程故障排查实例,指导工程师快速定位NAS层问题,提升5G网络调试与协议分析效率。
图论 —— 最小生成树(朴素Prim原理及模板题)
最小生成树模板题以模板题为例子解释AC代码:(代码有详细的注释!) 模板题 给定一个n个点m条边的无向图,图中可能存在重边和自环,边权可能为负数。 求最小生成树的树边权重之和,如果最小生成树不存在则输出impossible。 给定一张边带权的无向图G=(V, E),其中V表示图中点的集合,E表示图中边的集合,n=|V|,m=|E|。 由V中的全部n个顶点和E中n-1条边构成的无向连通子图被称为G的一棵生成树,其中边的权值之和最小的生成树被称为无向图G的最小生成树。 输入格式 第一行包含两个整数n和m。 接下
电容式麦克风:从原理到实际电路波形解析
本文深入解析电容式麦克风的工作原理,从核心的振膜与背板结构、电荷锁定机制到场效应管放大器的作用。通过实物拆解与等效电路分析,阐明声音振动如何转换为电压信号,并指导如何用示波器实测波形,直观展现声电转换过程,适合电子爱好者和音频技术学习者。
图论——最小生成树(Prim算法,Kruskal算法及常用模板)
最小生成树算法——Prim 算法(普⾥姆)Prim代码模板例题 POJ - 1258 Agri-NetAC代码最小生成树算法——Kruskal 算法(克鲁斯卡尔)Kruskal代码模板例题 POJ - 1287 NetworkingAC代码 最小生成树算法——Prim 算法(普⾥姆) 从某⼀个顶点开始构建⽣成树;每次将代价最⼩的新顶点纳⼊⽣成树,直到所有顶点都纳⼊为⽌。 算法描述: 在一个加权连通图中,顶点集合C,边集合为E 任意选出一个点作为初始顶点,标记为✔,计算所有与之相连接的点的距离,选择距离最.
QT下利用FFTW实现功率谱密度分析(周期图法)
写在前面 出于项目需求,需要在QT的msvc 2015编译环境下实现功率谱密度估计。 所以这个需求很直接的关键词就是 1. C++ 2. QT 3. 傅里叶变换 4. 功率谱密度估计 但是在网上搜索了很久,没有一个非常直接的答案。所以我觉得很有必要写一篇文章来说明,在QT msvc2015 32bit环境下如何实现功率谱密度估计。 本文并没有经过严格编辑,但代码是已经可以跑通的,如...
四轮两驱小车(四):STM32驱动5路灰度传感器PID循迹
之前买了一批5路灰度传感器,想用这传感器进行循迹,无奈网上和官方的资料提供的还是比较少,这里还是做一下当初的学习记录。
最小生成树——prim算法
最小生成树是一棵树,因此它是不成环的。他是一个具有N个结点,N-1条边的无向图。(树是特殊的图)并且这个图任意一个结点之间都是直接或者间接相连的。这个图的边权和是最小的,顾名思义最小生成树。邻接表存图vis数组记录已访问结点优先级队列优化每次都从优先级队列里贪心的拿到最小权值所访问结点小于实际结点数,说明图不连通完。
RK3568平台(USB篇)USB HUB集线器
hub,集线器,连接在host与device之间的一种用于usb接口扩展的usb设备。可以将一个usb上行接口扩展为多个下行接口,使得一个host可以同时与多个device连接。一般来说,一块hub桥接芯片可扩展4个usb接口,而市面上的一拖七hub,其实使用了两块hub桥接芯片,其中一块hub桥接芯片的上行端口连接到另一块hub桥接芯片的下行端口。hub的上行端口面向host,下行端口面向device。在下行端口上,hub提供了设备接入检测和设备移除检测的能力,并给下行端口供电。
【最小生成树】一文学懂prim、kruskal算法
首先,我们要了解什么是最小生成树🌠树and图?其实树也是一种特殊的图;无向、无环、联通图,就是树。🌳最小生成树求最小生成树,简单来说,就是让组成图的顶点,根据现有的边的关系,从图转换成一个特殊的图——树,光转换成树还不行,还要时这个特殊的图的所有边的权重加起来最小!这就是所谓的求最小生成树。
k8s配置habor作为镜像地址之后,如果harbor中没有镜像,如何设置自动从阿里云官方镜像仓库下载
通过 Harbor 的远端仓库可以集中管理。如果你在上游设置了 image prefix 为 library,那么对外访问 harbor.your-domain.com/library/nginx:latest 就会被 Harbor 去上游拉取 registry.cn-hangzhou.aliyuncs.com/library/nginx:latest 并缓存。- 将集群中的镜像地址改为 Harbor 的域名,比如 harbor.your-domain.com/library/nginx:latest。
【ComfyUI】VideoRefusion 动态替换视频背景
本文介绍了一个基于ComfyUI的视频背景替换工作流,通过WanVAE和WanTextEncoder核心模型实现人物与背景的智能分离与替换。工作流包含9个关键流程阶段,涉及视频采样、图像增强等节点操作,可生成风格统一、动作自然的视频效果。该技术适用于虚拟人物创作、短视频特效、产品广告等场景,支持个性化定制开发。相关资源可参考文末提供的ComfyUI教程和AIGC工具平台开发指南。(149字)
最小生成树之prim算法代码模板
import java.util.Arrays; import java.util.Scanner; public class Main { static int[][] map = new int[510][510]; static int[] dist = new int[510]; static boolean[] st = new boolean[510]; static int n, m; static int INF = Integer.MAX_VALUE / 100; pu.
android 蓝牙通讯demo
android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。
c++题目_【模板】最小生成树Prim
(1≤n≤1e3,1≤m≤2e6)(1≤n≤1e3,1≤m≤2e6)我将起始节点的最小距离初始化为0,并通过循环找到每个节点到最小生成树的最小距离,并将最小距离加入最小生成树的权值中。这是一道最小生成树Prim的模板题,本题与【模板】最小生成树Kruskal,仅仅只有nn和mm的大小不同。后面输入m行,每行有33个正整数 x,y,zx,y,z,代表第i条边所连接的2个点和这条边的权值,选择<1,2,1><2,3,1>这两条边此时可以生成一个最小生成树,此时权值也就是1+1=2。表示最小生成树的权值,
温度PID控制PLC程序
温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值
文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况
主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。
ACM 最小生成树 Kruskal Prim 算法模板
定义: 求最小生成树,有两种算法。一种是 Prim算法 ,另一种是Kruskal算法。 你们可以先看下这个最小生成树(Kruskal(克鲁斯卡尔)和Prim(普里姆))算法动画演示 看了都说好 嘻嘻 先讲一种比较简单的————Kruskal算法 贪心+并查集 #include <iostream> #include <algorithm> using namesp...
迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)
迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)
最小生成树模板——Prim算法
Prim算法 1).输入:一个加权连通图,其中顶点集合为V,边集合为E; 2).初始化:Vnew= {x},其中x为集合V中的任一节点(起始点),Enew= {},为空; 3).重复下列操作,直到Vnew= V: 在集合E中选取权值最小的边<u, v>,其中u为集合Vnew中的元素,而v不在Vnew集合当中,并且v∈V(如果存在有多条满足前述条件即具有相同权值的边,则可任意选取其中之一); 将v加入集合Vnew中,将<u, v>边加入集合Enew中; 4).输出:使用集合Vnew
图的最小生成树prim算法模板
用prim算法构建最小生成树适合顶点数据较少而边较多的图(稠密图) prim算法生成连通图的最小生成树模板伪代码: G为图,一般为全局变量,数组d为顶点与集合s的最短距离 Prim(G, d[]){ 初始化; for (循环n次){ u = 使d[u]最小的还未访问的顶点的标号; 记u 已被访问; for(从u出发到达的所...
prim算法求最小生成树(模板题)
描述 使用prim算法求某图的最小生成树的边的权值输出的序列。例如下图的最小生成树的权值输出序列为1 4 2 5 3,要求从V1顶点开始生成最小生成树。 输入 若干行整数 第一行为两个整数,分别为图的顶点数和边数 第二行开始是该图的邻接矩阵,主对角线统一用0表示,无直接路径的两点用100来表示(保证各边权值小于100) 输出 若干用空格隔开的整数 样例输入 6 10 0 6 1...
Prim算法:求解无向带权图的最小生成树
Prim算法通过不断选择与生成树距离最小的顶点来逐步构建最小生成树。算法从一个起始顶点开始,每次选择与当前生成树最小的顶点,并将该顶点加入生成树中,直到生成树涵盖了图的所有顶点。pair是C++标准库中提供的一种模板类,用于存储两个值的有序对。它可以将两个不同类型的值组合在一起,并提供了方便的访问和操作方法。在Prim算法的示例代码中,被用作边的表示,其中第一个int表示顶点的索引,第二个int表示边的权重。通过使用pair,可以将这两个相关的值打包在一起,方便地进行传递和处理。
图论 15. 最小生成树之prim算法
53. 寻宝(第七期模拟笔试)代码随想录卡码网无难度标识思路:(完全不知道怎么做啊,直接摘录代码随想录作为备忘)本题是最小生成树的模板题,那么我们来讲一讲最小生成树。最小生成树可以使用prim算法也可以使用kruskal算法计算出来。本篇我们先讲解prim算法。最小生成树是所有节点的最小连通子图,即:以最小的成本(边的权值)将图中所有节点链接到一起。图中有n个节点,那么一定可以用n-1条边将所有节点连接到一起。(重要论断)那么如何选择这n-1条边就是最小生成树算法的任务所在。prim算法是从节点的角度,采用
AcWing - Prim算法求最小生成树(Prim)
题目链接:https://www.acwing.com/problem/content/description/860/ 时/空限制:1s / 64MB 题目描述 给定一个n个点m条边的无向图,图中可能存在重边和自环,边权可能为负数。 求最小生成树的树边权重之和,如果最小生成树不存在则输出impossible。 给定一张边带权的无向图G=(V, E),其中V表示图中点的集合,E表示图中边的...
最小生成树 (prim 模板)
题目链接 存个模板!! prim:时间复杂度是V*V(v是节点的个数)。 该算法巧妙的利用了,最小生成树的切分性质:给定任意切分,横切边最小的边必然属于最小生成树。 #include <bits/stdc++.h> using namespace std; const int maxn = 105,inf = 1e9; int a[maxn][maxn],mn[max...
2115



被折叠的 条评论
为什么被折叠?



