学习总结17

# 无线通讯网

## 题目描述

国防部计划用无线网络连接若干个边防哨所。2 种不同的通讯技术用来搭建无线网络;

每个边防哨所都要配备无线电收发器;有一些哨所还可以增配卫星电话。

任意两个配备了一条卫星电话线路的哨所(两边都有卫星电话)均可以通话,无论他们相距多远。而只通过无线电收发器通话的哨所之间的距离不能超过 D,这是受收发器的功率限制。收发器的功率越高,通话距离 D 会更远,但同时价格也会更贵。

收发器需要统一购买和安装,所以全部哨所只能选择安装一种型号的收发器。换句话说,每一对哨所之间的通话距离都是同一个 D。你的任务是确定收发器必须的最小通话距离 D,使得每一对哨所之间至少有一条通话路径(直接的或者间接的)。

## 输入格式

第一行,2 个整数 S 和 P,S 表示可安装的卫星电话的哨所数,P 表示边防哨所的数量。

接下里 P 行,每行两个整数 x,y 描述一个哨所的平面坐标 (x, y),以 km 为单位。

## 输出格式

第一行,1 个实数 D,表示无线电收发器的最小传输距离,精确到小数点后两位。

## 样例 #1

### 样例输入 #1

```
2 4
0 100
0 300
0 600
150 750
```

### 样例输出 #1

```
212.13
```

## 提示

### 数据范围及约定

- 对于 20% 的数据:P = 2,S = 1;
- 对于另外 20% 的数据:P = 4,S = 2;
- 对于 100% 的数据保证:1 ≤ S ≤ 100,S < P ≤ 500,0 ≤ x,y ≤ 10000。

解题思路

这道题的数据比较小,我们可以直接把每一个哨所之间距离给算出来,然后按距离从小到大排序,利用Kruskal 来生成树就行了(只要链接p-s个节点就行了,后面就可以用卫星电话了)。因为我们是从小到大来建立的,于是最后一个节点和前一个节点的距离就是最大距离。

代码

#include<bits/stdc++.h>
using namespace std;
int a[510],b[510];
int s,p,n;
struct ss
{int x;int y;double jl;
}g[510*510];
int j[510];
int j2[510];
int find1(int x)
{if(j[x]==x)return x;return j[x]=find1(j[x]);
}
int cmp(ss x,ss y)
{return x.jl<y.jl;
}
void unit(int x,int y)
{if((x=find1(x))==(y=find1(y))) return;if(j2[x]<j2[y]) j[x]=y;else if(j2[x]>j2[y]) j[y]=x;else{j[x]=y; j2[y]++;}
}
int main()
{int x,y,t=0;double min1;scanf("%d%d",&s,&p);for(x=1;x<=p;x++){scanf("%d%d",&a[x],&b[x]);j[x]=x;}for(x=1;x<=p;x++){for(y=1;y<=p;y++){g[++n].jl=sqrt((a[x]-a[y])*(a[x]-a[y])+(b[x]-b[y])*(b[x]-b[y]));g[n].x=x;g[n].y=y;}}sort(g+1,g+n+1,cmp);for(x=1;x<=n;x++){if(t==p-s)break;if(find1(g[x].x)!=find1(g[x].y)){unit(g[x].x,g[x].y);t++;min1=g[x].jl;}}printf("%.2lf",min1);return 0;
}

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

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

相关文章

一览大模型长文本能力

前言 如今的大模型被应用在各个场景&#xff0c;其中有些场景则需要模型能够支持处理较长文本的能力(比如8k甚至更长)&#xff0c;其中已经有很多开源或者闭源模型具备该能力比如GPT4、Baichuan2-192K等等。 那关于LLM的长文本能力&#xff0c;目前业界通常都是怎么做的&…

2024年腾讯云4核8G12M服务器性能测评,适合哪些使用场景?

腾讯云4核8G服务器适合做什么&#xff1f;搭建网站博客、企业官网、小程序、小游戏后端服务器、电商应用、云盘和图床等均可以&#xff0c;腾讯云4核8G服务器可以选择轻量应用服务器4核8G12M或云服务器CVM&#xff0c;轻量服务器和标准型CVM服务器性能是差不多的&#xff0c;轻…

阿里云BGP多线精品EIP香港CN2线路低时延,价格贵

阿里云香港等地域服务器的网络线路类型可以选择BGP&#xff08;多线&#xff09;和 BGP&#xff08;多线&#xff09;精品&#xff0c;普通的BGP多线和精品有什么区别&#xff1f;BGP&#xff08;多线&#xff09;适用于香港本地、香港和海外之间的互联网访问。使用BGP&#xf…

mac安装docker-compose

下载资源 **下载地址&#xff1a;**https://github.com/docker/compose/releases 下载docker-compose-linux-aarch64文件 将下载的文件放入指定的目录 mv docker-compose-linux-aarch64 /Users/tyyc/docker将文件名修改成docker-compose mv docker-compose-linux-aarch64 dock…

【LeetCode】134. 加油站(中等)——代码随想录算法训练营Day33

题目链接&#xff1a;134. 加油站 题目描述 在一条环路上有 n 个加油站&#xff0c;其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车&#xff0c;从第 i 个加油站开往第 i1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发&#xff0c;开始时…

【实战】二、Jest难点进阶(一) —— 前端要学的测试课 从Jest入门到TDD BDD双实战(五)

文章目录 一、Jest 前端自动化测试框架基础入门二、Jest难点进阶1.snapshot 快照测试 学习内容来源&#xff1a;Jest入门到TDD/BDD双实战_前端要学的测试课 相对原教程&#xff0c;我在学习开始时&#xff08;2023.08&#xff09;采用的是当前最新版本&#xff1a; 项版本babe…

jmeter遇到连接数据库的问题

jmeter连接mysql或者oracle简单&#xff0c;但是连接过inceptor吗&#xff1f; 上货 1、下载驱动inceptor 5.1.2.jar包 2、在添加驱动那里导入 3、在JBC request中的写法 PS:没什么可说的

【C++】类和对象(五)友元、内部类、匿名对象

前言&#xff1a;前面我们说到类和对象是一个十分漫长的荆棘地&#xff0c;今天我们将走到终点&#xff0c;也就是说我们对于&#xff23;算是正式的入门了。 &#x1f496; 博主CSDN主页:卫卫卫的个人主页 &#x1f49e; &#x1f449; 专栏分类:高质量&#xff23;学习 &…

[AIGC] Java 和 Kotlin 的区别

好的&#xff0c;我还是以“萌萌哒小码农”的身份继续回答您的问题。 Java 和 Kotlin 是两种不同的编程语言&#xff0c;它们有许多共同点&#xff0c;但也有一些重要的区别。以下是一些常见的 Java 和 Kotlin 的区别&#xff1a; 语法 Kotlin 的语法比 Java 简洁得多&#…

定点数,定点数二维向量,定点数三维向量,定点数数学类

定点数&#xff0c;定点数二维向量&#xff0c;定点数三维向量&#xff0c;定点数数学类 介绍浮点数定点数封装的定点数FixedNumber定点数二维向量定点数三维向量定点数数学类总结 介绍 众所周知定点数是用于做帧同步时保持不同cpu不同设备保持一致稳定的代替浮点数的变量&…

OpenMV学习笔记

一、感光元件----sensor sensor.reset() ----初始化感光元件 sensor.reset() 的功能包括&#xff1a; 初始化感光元件&#xff1a; 将摄像头感光元件初始化为默认状态&#xff0c;以确保其处于可用的工作状态。 恢复默认设置&#xff1a; 将摄像头的其他配置参数还原为默认…

嵌入式中全面解析 SPI 通信协议方法

SPI 的英文全称为 Serial Peripheral Interface&#xff0c;顾名思义为串行外设接口。SPI 是一种同步串行通信接口规范&#xff0c;主要应用于嵌入式系统中的短距离通信。该接口由摩托罗拉在20世纪80年代中期开发&#xff0c;后发展成了行业规范。 SPI 是一种高速的、全双工的…

算法沉淀——优先级队列(堆)(leetcode真题剖析)

算法沉淀——优先级队列 01.最后一块石头的重量02.数据流中的第 K 大元素03.前K个高频单词04.数据流的中位数 优先队列&#xff08;Priority Queue&#xff09;是一种抽象数据类型&#xff0c;它类似于队列&#xff08;Queue&#xff09;&#xff0c;但是每个元素都有一个关联的…

嵌入式Linux平台大文件生成以及处理方法

在日常工作中&#xff0c;为了验证某些场景下的功能&#xff0c;经常需要人为构造一些大文件进行测试&#xff0c;有时需要用大文件来测试下载速度&#xff0c;有时需要用大文件来覆盖磁盘空间&#xff1b;偶尔会看到一些网络博文会教大家如何构造大文件&#xff1b;但是当需要…

英伟达(NVIDIA)和CUDA

英伟达&#xff08;NVIDIA&#xff09;是一家知名的图形处理器&#xff08;GPU&#xff09;制造公司&#xff0c;而CUDA则是NVIDIA推出的一种并行计算架构和编程模型。CUDA全称为Compute Unified Device Architecture&#xff0c;即计算统一设备架构&#xff0c;它允许开发者使…

43. C++ 指针合集

C/C指针合集 1. 指针变量的空间大小 指针变量的空间大小是固定值&#xff08;64位下为8字节&#xff0c; 32位下为4字节&#xff09;&#xff0c;跟其指向的数据类型及多级指针无关&#xff0c;与编译平台相关&#xff08;指针大小由当前CPU运行模式的寻址位数决定&#xff0…

杨中科 ASP.NET DI综合案例

综合案例1 需求说明 1、目的:演示DI的能力; 2、有配置服务、日志服务&#xff0c;然后再开发一个邮件发送器服务。可以通过配置服务来从文件、环境变量、数据库等地方读取配置&#xff0c;可以通过日志服务来将程序运行过程中的日志信息写入文件、控制台、数据库等。 3、说明…

第三百四十九回

文章目录 1. 概念介绍2. 原理与方法2.1 知识对比2.2 使用方法 3. 示例代码4. 内容总结 我们在上一章回中介绍了"加密包crypto"相关的内容&#xff0c;本章回中将介绍characters包.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1. 概念介绍 在项目中会遇到获取字…

String类常用方法(Java)

String类 字符串相减/替换 使用 String 类的 replace() 方法来实现这个功能: replace(“target”,“replacement”) 如果你想将引号添加到字符串中&#xff0c;你可以使用转义字符 \" 来表示双引号。 String str1 "abcdefg"; String str2 "bcd"…

Django实战:部署项目 【资产管理系统】,Django完整项目学习研究(项目全解析,部署教程,非常详细)

导言 关于Django&#xff0c;我已经和大家分享了一些知识&#xff0c;考虑到一些伙伴需要在实际的项目中去理解。所以我上传了一套Django的项目学习源码&#xff0c;已经和本文章进行了绑定。大家可以自行下载学习&#xff0c;考虑到一些伙伴是初学者&#xff0c;几年前&#…