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

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

时间:2024-08-28 17:47:45浏览次数:6  
标签:11 NN int 1350 农场 最短 agrinet INF 101

 【题目描述】

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

 

标签:11,NN,int,1350,农场,最短,agrinet,INF,101
From: https://www.cnblogs.com/nanshaquxinaosai/p/18385251

相关文章

  • 安装python教程详解-(Linux和Windows11安装python)
    一、Linux编译安装Python3.12.5python官网地址:WelcometoPython.org1.1安装python环境1.1.1安装开发工具包和依赖#yum-ygroupinstall"DevelopmentTools" #yum-yinstallgcczlibzlib-devellibffilibffi-develreadline-developenssl-developenssl11ope......
  • 介绍一个瘦身脚本:Win11Debloat
    见仁见智,不喜勿喷。https://github.com/Raphire/Win11Debloat以下是google机器翻译的:Win11DebloatWin11Debloat是一个简单、易用且轻量级的PowerShell脚本,可以删除预装的Windows臃肿软件应用程序、禁用遥测并通过禁用或删除侵入性界面元素、广告等来简化体验。无需亲自......
  • 递推配套P1192 & 题解:P1192 台阶问题
    我们现在考虑递推。现在的问题是,如何从前几个数据推导出下一个数据。我们现在先推导\(f(n)\)。设\(k=3\)。到\(n\)的方法就是到能一步到\(n\)的台阶的方法总和,所以我们可以推导出:\(f(n)=f(n-1)+f(n-2)+\dots+f(n-k)/f(1)\)。即为:\(f(n)=\sum_{i=......
  • 11. HashSet的内部实现原理是什么?它如何保证元素不重复?
    HashSet是Java集合框架中的一个实现了Set接口的类,它用于存储不重复的元素。HashSet的内部实际上是基于HashMap来实现的。下面是HashSet的内部实现原理和它如何保证元素不重复的细节。1.HashSet的底层数据结构HashSet内部使用一个HashMap实例来存储元素。在HashSet中,每个添......
  • D11 kubernetes yaml模板与示例
    》 kubernetes资源的创建、更新、删除等操作均可以使用json或者yaml文件进行操作,更新和删除可以依赖之前的文件进行更改。但是资源清单文件就没那么容易了,k8s的配置项实在是太多,稍微不注意就会犯错。要写好一个yaml文件,需要了解yaml文件的语法,需要整我k8s的各种配置。本文按照k8s......
  • 目录PyCharm Community Edition、python3.11、pythonProject之间的关系
    PyCharmCommunityEdition类型:PyCharmCommunityEdition是由JetBrains公司提供的免费、开源的集成开发环境(IDE)。用途:它专门为Python开发设计,提供了代码编辑、运行、调试、测试等功能。特点:包括智能代码补全、代码分析、图形化界面设计、版本控制集成等高级功能。Pyt......
  • 11.网络管理技术
    13-1SNMP管理模型与配置命令3-4分包括大题向右request向左response默认是version1(不设置的话)13-2ICMP报文协议类型13-3windows2003网络管理release释放租约renew续约与本地有关13-4网络攻击与漏洞查询D13-5......
  • Win11如何找回熟悉的开始菜单、任务栏和右键菜单
    背景公司政策满3年可以换新电脑,前段时间申请了下,到手后发现是Win11系统,配置翻倍,欣然接受,把一些常用的软件都安装上,但是,用了一段时间后,发现右键刷新要点击2次,开始菜单找东西也完全靠搜索,任务栏不可定义了,和以前常用的右下角日历小工具不兼容,如果要和这些用惯好多年的操作sayg......
  • Windows 11 24H2更新实测:AMD Zen5、Zen4游戏性能提升最多35%
    在即将推出的Windows1124H2更新正式版中,会包含针对性的分支预测优化,再结合更高权限的隐藏管理员账号,Zen5游戏性能可获得显著提升最多达13%,Zen4、Zen3也能从中获益。HardwareUnboxed实测了还处于内测版的Windows1124H2Build26100,对比现在的23H2Build2263,共有多达40款游戏,分......
  • laravel11+vue编程
    文档视频地址https://www.youtube.com/watch?v=iGnlmxA7oM8&list=PL38wFHH4qYZXCW2rlBLNdHi5cv-v_qlXO视频代码https://github.com/JonVadar/YouTube_videos/tree/main/Webdeveloperpathvideos/laravel_Inertia_VueCSSfile:https://github.com/JonVadar/YouTube_videos......