当前位置: 首页 > news >正文

1140. 最短网络,prim算法,模板题

1140. 最短网络 - AcWing题库

农夫约翰被选为他们镇的镇长!

他其中一个竞选承诺就是在镇上建立起互联网,并连接到所有的农场。

约翰已经给他的农场安排了一条高速的网络线路,他想把这条线路共享给其他农场。

约翰的农场的编号是1,其他农场的编号是 2∼n。

为了使花费最少,他希望用于连接所有的农场的光纤总长度尽可能短。

你将得到一份各农场之间连接距离的列表,你必须找出能连接所有农场并使所用光纤最短的方案。

输入格式

第一行包含一个整数 n,表示农场个数。

接下来 n 行,每行包含 n 个整数,输入一个对角线上全是0的对称矩阵。
其中第 x+1 行 y 列的整数表示连接农场 x 和农场 y 所需要的光纤长度。

输出格式

输出一个整数,表示所需的最小光纤长度。

数据范围

3≤n≤100
每两个农场间的距离均是非负整数且不超过100000。

输入样例:
4
0  4  9  21
4  0  8  17
9  8  0  16
21 17 16  0
输出样例:
28

解析 :prim算法


prim算法的基本想法:种一棵树,让树从一个节点增长到n个节点
1.初始的时候树只有一个节点,没有边,初始节点可以是任意一个节点
2.每一轮循环找出一条边把它接到树上
3.整个过程都要保证一个性质:
        树是连通图
        没有回路
4.算法循环次数等于节点数量(每一轮循环添加一个节点)

具体操作:
1.树中只有一个节点(任意选这一个节点即可),没有边。
2.用集合 U 来保存选中的节点
3.用集合 T 来保存树的边
4.每次循环把一个点和一条边接到树上:
    e(u,v)表示:边的一个节点在集合U中,一个不在,选出最小的e(u,v)
    将e(u,v)加入T,v加入U中
5.返回这棵树
    

#include<iostream>
#include<string>
#include<cstring>
#include<cmath>
#include<ctime>
#include<algorithm>
#include<utility>
#include<stack>
#include<queue>
#include<vector>
#include<set>
#include<math.h>
#include<map>using namespace std;
typedef long long LL;
const int N = 1e2 + 5;
int n;
int g[N][N];
int v[N],d[N];int prim() {memset(d, 0x3f, sizeof d);//点到生成树的最小距离d[1] = 0;int ret = 0;for (int i = 1; i <= n; i++) {int x = -1;for (int j = 1; j <= n; j++) {//vis[j]==1表示点j在U中//x==-1表示可以任选一个点作为初始节点// d[x] > d[j]:选出最小的e(u,v)的vif (!v[j] && (x == -1 || d[j] < d[x]))x = j;}ret += d[x];v[x] = 1;//更新e(u,v),用x更新所有点到这棵树的最小距离for (int j = 1; j <= n; j++) {d[j] = min(d[j], g[j][x]);}}return ret;
}int main() {cin >> n;for (int i = 1; i <= n; i++) {for (int j = 1; j <= n; j++) {scanf("%d", &g[i][j]);}}cout << prim() << endl;return 0;
}

 

相关文章:

1140. 最短网络,prim算法,模板题

1140. 最短网络 - AcWing题库 农夫约翰被选为他们镇的镇长&#xff01; 他其中一个竞选承诺就是在镇上建立起互联网&#xff0c;并连接到所有的农场。 约翰已经给他的农场安排了一条高速的网络线路&#xff0c;他想把这条线路共享给其他农场。 约翰的农场的编号是1&#xf…...

升级jdk17过程中,原来的jdk8下的webservice客户端怎样处理

背景&#xff1a;之前jdk8环境下&#xff0c;使用的cxf框架&#xff0c;而且是动态加载解析作为客户端。大家一直相处的很愉快。但是最近升级jdk17&#xff0c;发现cxf不好用了。网上百度&#xff0c;大部分都是说升级cxf版本&#xff0c;并且添加jaxb的相关依赖就可以了。但是…...

Verilog基本语法概述

一、概述 Verilog 是一种用于数字逻辑电路设计的硬件描述语言&#xff0c;可以用来进行数字电路的仿真验证、时序分析、逻辑综合。 既是一种 行为级&#xff08;可用于电路的功能描述&#xff09; 描述语言又是一种 结构性&#xff08;可用于元器件及其之间的连接&#xff09…...

论文阅读:C2VIR-SLAM: Centralized Collaborative Visual-Inertial-Range SLAM

前言 论文全程为C2VIR-SLAM: Centralized Collaborative Visual-Inertial-Range Simultaneous Localization and Mapping&#xff0c;是发表在MDPI drones&#xff08;二区&#xff0c;IF4.8&#xff09;上的一篇论文。这篇文章使用单目相机、惯性测量单元( IMU )和UWB设备作为…...

蓝桥杯刷题day01——字符串中的单词反转

题目描述 你在与一位习惯从右往左阅读的朋友发消息&#xff0c;他发出的文字顺序都与正常相反但单词内容正确&#xff0c;为了和他顺利交流你决定写一个转换程序&#xff0c;把他所发的消息 message 转换为正常语序。 注意&#xff1a;输入字符串 message 中可能会存在前导空…...

Python---引用变量与可变、非可变类型

引用变量 在大多数编程语言中&#xff0c;值的传递通常可以分为两种形式“ 值 传递 与 引用 传递”&#xff0c;但是在Python中变量的传递基本上都是引用传递。 变量在内存底层的存储形式 a 10 第一步&#xff1a;首先在计算机内存中创建一个数值10&#xff08;占用一块…...

GDOUCTF2023-Reverse WP

文章目录 [GDOUCTF 2023]Check_Your_Luck[GDOUCTF 2023]Tea[GDOUCTF 2023]easy_pyc[GDOUCTF 2023]doublegame[GDOUCTF 2023]L&#xff01;s&#xff01;[GDOUCTF 2023]润&#xff01;附 [GDOUCTF 2023]Check_Your_Luck 根据 if 使用z3约束求解器。 EXP&#xff1a; from z3 i…...

Day43力扣打卡

打卡记录 子数组的最小值之和&#xff08;乘法原理 单调栈&#xff09; 大佬的题解 class Solution:def sumSubarrayMins(self, arr: List[int]) -> int:n len(arr)# 左边界 left[i] 为左侧严格小于 arr[i] 的最近元素位置&#xff08;不存在时为 -1&#xff09;left, s…...

elementui的table合并列,三个一组

<el-table :span-method"objectSpanMethod" :cell-style"iCellStyle" :data"tableData" height"63vh" border style"width: 100%; margin-top: 6px"><el-table-column type"index" label"序号"…...

HarmonyOS-Service服务开发(一)

文章目录 创建新项目启动Serviceets获取service的bundleName DataAbility开发指导开发Data步骤创建Data 创建新项目 ServiceAbility开发指导 在config.json中也有配置出现 启动Service ets获取service的bundleName 项目的bundleName service的bundleName 这里serviceAbil…...

FLASK博客系列4——再谈路由

最近好像拖更有点久了。抱歉抱歉~ 今天我们继续来聊聊路由&#xff08;其实就是我上次偷懒剩下一点没讲完&#xff09;。 通过上次的文章&#xff0c;我们基本了解了Flask中的路由&#xff0c;是不是比较简单呢&#xff1f;别急&#xff0c;今天来点猛料。 一、路由之HTTP方法绑…...

sql之left join、right join、inner join的区别

sql之left join、right join、inner join的区别 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录 inner join(等值连接) 只返回两个表中联结字段相等的行 举例如下&#xff1…...

京东秒杀之秒杀详情

1 编写前端页面&#xff08;商品详情&#xff09; <!DOCTYPE html> <head><title>商品详情</title><meta http-equiv"Content-Type" content"text/html; charsetUTF-8" /><script type"text/javascript" src&…...

mobaxterm 下载、安装、使用

下载 官网 MobaXterm free Xserver and tabbed SSH client for Windows 下载页面 MobaXterm Xserver with SSH, telnet, RDP, VNC and X11 - Download 点击下载 安装 双击安装 勾选协议 修改安装路径 &#xff0c;等待安装完成 使用 启动 新建连接 输入主机用户名和密…...

办公技巧:Word中插入图片、形状、文本框排版技巧

目录 一、插入图片排版技巧 二、添加形状排版技巧 三、插入“文本框”排版技巧 我们平常在制作word时候经常会遇到插入选项卡下的图片、形状和文本框这三种情况下&#xff0c;那么如何使得Word文档当中添加这三个元素的同时&#xff0c;又能保证样式美观呢&#xff0c;今天小…...

apple macbook M系列芯片安装 openJDK17

文章目录 1. 查找openjdk版本2. 安装openjdk3. 多jdk之间的切换 在这里我们使用 brew 命令查找并安装。 1. 查找openjdk版本 执行&#xff1a;brew search openjdk&#xff0c;注意&#xff1a;执行命令后&#xff0c;如果得到的结果中没有红框内容&#xff0c;则需要更新一下…...

C语言——打印出所有的“水仙花数”

所谓水仙花数,是指一个3位数,其各位数字立方和等于该数本身。水仙花数是指一个三位数&#xff0c;它的每个位上的数字的立方和等于它本身。例如&#xff0c;153是一个水仙花数&#xff0c;因为1^3 5^3 3^3 153。 #define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>…...

<HarmonyOS第一课>应用程序框架 【课后考核】

【习题】应用程序框架 判断题 一个应用只能有一个UIAbility。错误(False)创建的Empty Ability模板工程&#xff0c;初始会生成一个UIAbility文件。正确(True)每调用一次router.pushUrl()方法&#xff0c;页面路由栈数量均会加1。错误(False) 单选题 API9及以上&#xff0c;r…...

自动驾驶学习笔记(十一)——高精地图

#Apollo开发者# 学习课程的传送门如下&#xff0c;当您也准备学习自动驾驶时&#xff0c;可以和我一同前往&#xff1a; 《自动驾驶新人之旅》免费课程—> 传送门 《Apollo Beta宣讲和线下沙龙》免费报名—>传送门 文章目录 前言 高精地图 地图采集 底图制作 地图…...

HCIA-H12-811题目解析(2)

1、【单选题】 在以太网这种多点访问网络上PPPOE服务器可以通过一个以太网端口与很多PPPOE客户端建立起PPP连接&#xff0c;因此服务器必须为每个PPP会话建立唯一的会话标识符以区分不同的连接PPPOE会使用什么参数建立会话标识符? 2、【单选题】PPP协议定义的是OSI参考模型中…...

JavaScript错误处理终极指南:try-catch和异常捕获的完整教程

JavaScript错误处理终极指南&#xff1a;try-catch和异常捕获的完整教程 【免费下载链接】123-Essential-JavaScript-Interview-Questions JavaScript interview Questions 项目地址: https://gitcode.com/gh_mirrors/12/123-Essential-JavaScript-Interview-Questions …...

以爱毕业aibiye为代表的七家专业论文辅导团队,通过优质的在线指导在国内学术服务领域脱颖而出

核心工具对比速览 工具名称 核心优势 适用场景 降重效果 处理速度 aibiye 专业术语保留度高 理工科论文 40%→7% 快速 aicheck 逻辑结构保持好 社科类论文 38%→6% 极快 askpaper 上下文连贯性强 人文类论文 45%→8% 中等 秒篇 多语种支持 外语论文 42%…...

别再手动拖拽了!用Python+DeepSeek API自动生成Visio流程图(附完整代码)

用PythonDeepSeek API实现Visio流程图全自动生成 每次手动拖拽Visio图形调整连接线时&#xff0c;你是否会感到效率低下&#xff1f;当流程需要反复修改时&#xff0c;传统绘图方式就像用打字机写代码一样笨拙。现在&#xff0c;通过Python脚本调用DeepSeek API&#xff0c;我…...

【AIAgent可靠性黄金法则】:SITS2026权威发布的5大不可妥协要素(20年架构师亲验)

第一章&#xff1a;SITS2026总结&#xff1a;构建可靠AIAgent的关键要素 2026奇点智能技术大会(https://ml-summit.org) 构建可靠AI Agent并非仅依赖更大参数量或更强推理能力&#xff0c;而需在系统性工程层面筑牢四大支柱&#xff1a;可验证的决策逻辑、受控的工具调用边界、…...

【多模态大模型落地自动驾驶实战白皮书】:20年智驾专家首曝3大失败场景、5类传感器融合陷阱与实时推理优化黄金公式

第一章&#xff1a;多模态大模型在自动驾驶中的应用 2026奇点智能技术大会(https://ml-summit.org) 多模态大模型正深刻重塑自动驾驶系统的感知、推理与决策范式。传统 pipeline 架构依赖独立模块分别处理摄像头、激光雷达、毫米波雷达及高精地图数据&#xff0c;而多模态大模…...

SenseVoice-small-onnx语音识别实战:为老年群体设计大字体高对比度Gradio语音助手

SenseVoice-small-onnx语音识别实战&#xff1a;为老年群体设计大字体高对比度Gradio语音助手 你有没有想过&#xff0c;当家里的长辈想用手机发条语音消息&#xff0c;或者想问问天气&#xff0c;却因为看不清屏幕上的小字、分不清复杂的按钮而放弃&#xff1f;这可能是很多老…...

别再折腾模拟器了!Godot 4.4.1 项目直接打包APK,用微信传手机就能跑起来

Godot 4.4.1极简安卓打包指南&#xff1a;微信传APK的5个避坑技巧 每次在电脑上调试完Godot项目&#xff0c;最烦人的就是要在安卓手机上测试效果。装模拟器&#xff1f;太占内存&#xff1b;用ADB&#xff1f;配置复杂&#xff1b;第三方测试平台&#xff1f;还要注册账号。其…...

Golang go mod tidy怎么清理依赖_Golang依赖清理教程【核心】

不能——go mod tidy 只删除代码中完全未 import 且未被任何依赖链引入的模块&#xff0c;不分析运行时行为&#xff0c;仅做静态扫描&#xff08;含 *_test.go 和 import _&#xff09;&#xff0c;//indirect 不代表可删&#xff0c;需组合命令验证依赖关系并完整构建测试。g…...

Agent评测体系:如何量化Agent的能力与可靠性

会根据问题选择召回策略、决定是否多次搜索、过滤重复结果&#xff0c;还能将高价值信息回写知识图谱库。 Agentic RAG 在普通RAG(“召回-增强-生成”)基础上更具主动性: 相比自然语言回答&#xff0c;精准性和可复现性更高&#xff0c;但对执行环境要求高&#xff0c;需在隔离…...

联发科手机传感器功耗优化实战:手把手教你理解MTK SensorHub与CHRE协同工作原理

联发科SensorHub深度解析&#xff1a;从架构设计到低功耗实战优化 当你在深夜刷手机时突然弹出"电量不足20%"的警告&#xff0c;或是出差途中发现手机续航撑不过半天&#xff0c;这种焦虑感背后隐藏着一个关键技术难题——传感器功耗管理。现代智能手机平均搭载15个以…...