南沙信息学家教陈老师: 1349:【例4-10】最优布线问题

【题目描述】

学校有nn台计算机,为了方便数据传输,现要将它们用数据线连接起来。两台计算机被连接是指它们有数据线连接。由于计算机所处的位置不同,因此不同的两台计算机的连接费用往往是不同的。

当然,如果将任意两台计算机都用数据线连接,费用将是相当庞大的。为了节省费用,我们采用数据的间接传输手段,即一台计算机可以间接的通过若干台计算机(作为中转)来实现与另一台计算机的连接。

现在由你负责连接这些计算机,任务是使任意两台计算机都连通(不管是直接的或间接的)。

【输入】

第一行为整数nn(2≤n≤1002≤n≤100),表示计算机的数目。此后的nn行,每行nn个整数。第x+1x+1行yy列的整数表示直接连接第xx台计算机和第yy台计算机的费用。

【输出】

一个整数,表示最小的连接费用。

【输入样例】

3
0 1 2
1 0 1
2 1 0

【输出样例】

2

【提示】

注:表示连接11和22,22和33,费用为22。

 

​
#include <bits/stdc++.h>
using namespace std;
const int INF=0x3f3f3f3f;
int g[101][101];
int n,ans=0;
struct Close {int adj;  //邻接点 int cost; //代价 
};
Close c[101];
int getMin()
{int min=INF,pos=0;for(int i=1;i<=n;i++){if(c[i].cost!=0&&c[i].cost<min){min=c[i].cost;pos=i;}}return pos;
}void Prim(int u)
{for(int i=1;i<=n;i++){if(i!=u){c[i].adj=u;c[i].cost=g[u][i]; //存放连着U的顶点以及最小路径}}c[u].cost=0;  //初始U={u} for(int i=1;i<=n;i++){int pos=getMin();if(c[pos].adj!=0){ans+=g[pos][c[pos].adj];}c[pos].cost=0; for(int j=1;j<=n;j++){if(c[j].cost!=0&&g[pos][j]<c[j].cost){c[j].cost=g[pos][j];c[j].adj=pos;}}}}
int main()
{memset(g,0x3f,sizeof(g));cin>>n;for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)cin>>g[i][j];Prim(1);cout<<ans;return 0;
}​

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/788627.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于springboot的grpc服务端demo

一个springboot 实现grpc 服务端demo的简单配置,包含java配置 和 代理配置1. Javamaven配置点击查看代码 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www…

博客园美化系列第一弹

博客园美化系列第一弹 首先要确保你已经申请开通博客「理由随便写,积极向上即可」,且已通过审核。 然后进入【设置】,申请 js 权限。 申请理由举例「从网上找的,当时直接复制上就通过了」: 尊敬的博客园管理员: 您好,我想通过 js 定制化我的博客,麻烦通过下我的申请。 …

高通ramdump

背景 高通平台下提供了一个工具,专门用来抓取内核死机以后的dump信息。如果只是非系统层面的crash(例如底层应用,安卓程序),则不能抓取dump信息。 在阅读一些文档的时候知道有这个功能,但是一直没时间尝试。 介绍 流程为: 1、进入dump模式:系统需要触发crash, 同时机器…

QL5010-16-ASEMI逆变焊机专用整流桥QL5010

QL5010-16-ASEMI逆变焊机专用整流桥QL5010编辑:ll QL5010-16-ASEMI逆变焊机专用整流桥QL5010 型号:QL5010 品牌:ASEMI 封装:KBPC-4 批号:2024+ 类型:整流模块 电流:50A 电压:1600V 安装方式:直插式封装 特性:大功率、整流桥 产品引线数量:4 产品内部芯片个数:4 产品…

解决方案 | IrfanView如何滑动滚轮图像缩放?

这是个bug,已经很多人反映了。目前没有比较好的解决方法,还是使用ctrl+滚轮最好。如果需要设置滚轮放大的话,按照下图即可,但是带来一个bug,你无法通过方向键或者菜单的箭头浏览 下一张图片。综上所述,你有3个选择,1 接受使用 ctrl+滚轮进行放大2 设置--关闭”显示所有支…

Python开发工具:VSCode+插件

本篇是 Python 系列教程第 3 篇,更多内容敬请访问我的 Python 合集Visual Studio Code的安装非常简单,就不放这里增加文章篇幅了。 相比PyCharm,VSCode更加轻量,启动速度快。并且搭配Python插件就能实现和Pycharm一样的代码提示、高亮效果。 1 安装插件 安装插件也非常简单…

jmeter之性能测试

性能测试 一、性能测试的介绍 1、定义:通过某些工具或手段来检测软件的某些指标是否达到要求,这就是性能测试。 功能测试:a,b 两个软件,a可以打开,b也可以打开 性能测试:a,b 两个软件,a可以打开8s,b也可以打开2s 说明:b的性能好 2、性能测试是在功能测试之后进行; 3、…

(十九)transformers解码策略

文本生成策略 文本生成对于许多 NLP 任务至关重要,例如开放式文本生成、摘要、翻译和 更多。它还在各种混合模态应用程序中发挥作用,这些应用程序将文本作为输出,例如语音到文本 以及 vision-to-text。一些可以生成文本的模型包括 GPT2、XLNet、OpenAI GPT、CTRL、Transform…

Python开发工具:PyCharm

本文是 Python 系列教程第 2 篇,更多内容敬请访问我的 Python 合集 1 安装 官网下载地址https://www.jetbrains.com.cn/pycharm/,文件比较大(约861MB)请耐心等待双击exe安装安装成功后会有一个30天的试用期,激活教程见先插个眼,有空更新激活教程 2 创建第一个项目图中这句…

thinkPHP6 反序列化

thinkPHP6 反序列化 thinkPHP v6.0.0-6.0.3 环境搭建 新版v6基于 PHP7.1+ 开发 php-7.3.4 ThinkPHP v6.0.3使用composer进行安装 composer create-project topthink/think=6.0.3 tp6.0然后利用 phpstudy 打开框架,简单配置如下子,再同样的道理配置 phpstorm 的调试。 但是万事…

由Flase引起的问题

特别抽象!起因是想用github来托管我的代码,后来发现出现了点错误 fatal: bad boolean config value flase for http.sslverify解决方案: 打开C盘 -> 搜索 .gitconfig -> 在里面修改内容即可再次回到 gitbash 上,再次输入git clone 的指令,非常好,一波未平一波又起 …

自我介绍软工5问

这个作业属于哪个课程 https://edu.cnblogs.com/campus/gdgy/CSGrade22-34这个作业要求在哪里 https://edu.cnblogs.com/campus/gdgy/CSGrade22-34/homework/13228这个作业的目标 创建自己的博客和github账号,养成写博客的好习惯,了解程序员的工作的方式,熟悉markdown自我介…