南沙区信奥赛CSP-J/S 陈老师解题:1350:【例4-11】最短网络(agrinet)

 【题目描述】

农民约翰被选为他们镇的镇长!他其中一个竞选承诺就是在镇上建立起互联网,并连接到所有的农场。当然,他需要你的帮助。约翰已经给他的农场安排了一条高速的网络线路,他想把这条线路共享给其他农场。为了用最小的消费,他想铺设最短的光纤去连接所有的农场。你将得到一份各农场之间连接费用的列表,你必须找出能连接所有农场并所用光纤最短的方案。每两个农场间的距离不会超过100000100000。

【输入】

第一行:农场的个数,N(3≤N≤100)N(3≤N≤100)。

第二行..结尾:后来的行包含了一个N×NN×N的矩阵,表示每个农场之间的距离。理论上,他们是NN行,每行由NN个用空格分隔的数组成,实际上,他们限制在8080个字符,因此,某些行会紧接着另一些行。当然,对角线将会是00,因为不会有线路从第ii个农场到它本身。

【输出】

只有一个输出,其中包含连接到每个农场的光纤的最小长度。

【输入样例】

4
0 4 9 21
4 0 8 17
9 8 0 16
21 17 16 0

【输出样例】

28

 

#include <bits/stdc++.h>
using namespace std;
int n,g[101][101],ans=0,INF=0x3f3f3f3f;
struct Node
{int adj;int cost;
}c[101];
int getMin()
{int pos=0,minn=INF;for(int i=1;i<=n;i++){if(c[i].cost!=0&&c[i].cost<minn){minn=c[i].cost;pos=i;}}return pos;
}
void Prim(int u)
{for(int j=1;j<=n;j++){if(j!=u){c[j].adj=u;c[j].cost=g[u][j]; //存放连着i的顶点以及最小路径}}c[u].cost=0;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()
{cin>>n;for(int i=1;i<=n;i++)for(int j=1;j<=n;j++){cin>>g[i][j];if(g[i][j]==0)g[i][j]=INF;}Prim(1);cout<<ans;return 0;
}

 

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

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

相关文章

从零开始带你玩转 AI 变现公开课

在这个数字化时代,AI技术正以前所未有的速度改变着我们的创作与变现方式。小红书,作为年轻人喜爱的社交电商平台,更是为创作者们提供了广阔的舞台。但如何在小红书上利用AI技术实现内容创作与收益转化的双赢?我们的公开课将为你一一揭晓答案! 主课程亮点:掌握DALLE模型文…

C++基础/C++中的多态(关于虚...)

C++中的多态(关于虚...) 1.前置基础知识 1.1对象是如何存储在内存中的 #include <iostream> #include <string>class Animal { private:string name;int age;public:Animal(std::string name, int age) : name(name), age(age) {};~Animal();virtual void eat() …

算法与数据结构——哈希算法

哈希算法 前面介绍了哈希表的工作原理和哈希冲突的处理方法。然而无论是开放寻址还是链式地址,它们只能保证可以在发生冲突时正常工作,而无法减少哈希冲突的发生。 如果哈希冲突过于频繁,哈希表的性能则会急剧劣化。如下图所示,对于链式哈希表,理想情况下键值对均匀分布在…

Proxyless的多活流量和微服务治理

1. 引言 1.1 项目的背景及意义 在当今的微服务架构中,应用程序通常被拆分成多个独立的服务,这些服务通过网络进行通信。这种架构的优势在于可以提高系统的可扩展性和灵活性,但也带来了新的挑战,比如:服务间通信的复杂性:不同服务之间需要进行可靠的通信,处理失败重试、负…

报表融合大屏,做不一样的财务分析!

冷冰冰的数据如何让人眼前一亮? 千篇一律的表格如何让数据可视化? ...... 赶快丢掉那些传统的表格工具吧!!!现在我们都用更智能的工具来做报表了!财务报表是什么? 财务报表是企业财务状况、经营成果及现金流量的综合反映,通过表格、图表等形式,系统地展示了企业在一定…

Cloudflare Workers 每日免费限制 超出流量自动关闭 - 失败模式 改为 失败时自动关闭(阻止)

cloudflare workers 每日免费限制 超出流量自动关闭 - 失败模式 改为 失败时自动关闭(阻止) 位置在 Workers 和 Pages - 相应的workers - 设置 - 函数 - 更改失败模式 改为 失败时自动关闭(阻止) 这个设置,网上竟然没有人说,这么重要的事情,应该要设置,必须要设置!!…

为什么上海市的跨江大桥两边上没有设置非机动车道 All In One

为什么上海市的跨江大桥两边上没有设置非机动车道 All In One 处于设计、安全和成本考虑,因噎废食,懒得搞为什么上海市的跨江大桥两边上没有设置非机动车道 All In One处于设计、安全和成本考虑,因噎废食,懒得搞FQA 行人如何跨越黄浦江?上海15座跨江大桥,为何只见车流不见…

vue3的 状态管理库

1.vue 的状态管理库 vue 常用的状态管理库有 vuex 和 Pinia,两者的区别如下:架构设计‌:Vuex 采用全局单例模式,通过一个store对象来管理所有的状态;而 Pinia 采用了分离模式,每个组件都拥有自己的store实例。 模块设计:Vuex 包含 states、mutations、getters、actions、…

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

​ 【题目描述】学校有nn台计算机,为了方便数据传输,现要将它们用数据线连接起来。两台计算机被连接是指它们有数据线连接。由于计算机所处的位置不同,因此不同的两台计算机的连接费用往往是不同的。 当然,如果将任意两台计算机都用数据线连接,费用将是相当庞大的。为了节…

基于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, 同时机器…