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

华为OD算法题汇总

60、计算网络信号

题目

网络信号经过传递会逐层衰减,且遇到阻隔物无法直接穿透,在此情况下需要计算某个位置的网络信号值。注意:网络信号可以绕过阻隔物
array[m][n],二维数组代表网格地图
array[i][j]=0,代表i行j列是空旷位置
array[i][j]= x,(x为正整数)代表i行j列是信号源,信号强度是x,
array[i][j]=-1, 代表i行j列是阻隔物
信号源只有1个,阻隔物可能有0个或多个;
网络信号袁减是上下左右相邻的网格衰减1现要求输出对应位置的网络信号值。

输入
输入为三行,
第一行为 m、n,代表输入是一个mxn 的数组,
第二行是一串 mxn 如个用空格分隔的整数每连续n个数代表一行,再往后n个代表下一行,以此类推。对应的值代表对应的网格是空矿位置,还是信号源,还是阻隔物,
第三行是ì、j,代表需要计算 array[i][j] 的网络信号值。注意:此处i和j均从 0开始,即第一行i为0;

例如:

6 5
0 0 0 -1 0 0 0 0 0 0 0 0 -1 4 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0
1 4

输出
输出对应位置的网络信号值,如果网络信号未覆盖到,也输出0。
一个网格如果可以途径不同的传播衰减路径传达,取较大的值作为其信号值。

解题思路

把信号源向上下左右四个方向扩散,并把满足条件的扩散点作为新的信号源继续扩散,直到信号值为0、或者扩散到“坐标系”边缘

6 5
0 0 0 -1 0 0 0 0 0 0 0 0 -1 4 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0

对于以上输入,得到的二维数组(可视为坐标系)为

0 0  0 -1  0 
0 0  0  0  0 
0 0 -1  4  0 
0 0  0  0  0 
0 0  0  0 -1 
0 0  0  0  0

扩散后,最终为

0 0  1 -1  1 
0 1  2  3  2 
0 0 -1  4  3 
0 1  2  3  2 
0 0  1  2 -1 
0 0  0  1  0

这里一定要注意,二维数组和我们上学时常用的xy轴坐标系还是有区别的,它们的原点不同,下面简化一下以上二维数组坐标系示意图

在这里插入图片描述

6 5
0 0 0 -1 0 0 0 0 0 0 0 0 -1 4 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0
1 4

这个输入,要求的输出array[1][4],它的结果是2;
我一开始把二维数组和上学时的xy轴坐标系给搞混了,死活想不明白(1,4)为啥是2,而不是1?

java代码

没有作输入的合法性校验,有兴趣的可以自己补充一下;
变量名起的也比较随意,大家不要学我

import java.util.LinkedList;
import java.util.Scanner;public class A60计算网络信号 {private static LinkedList<Danyuange> list = new LinkedList<>();private static int[][] zhouweiArr = {{0, 1}, {0, -1}, {1, 0}, {-1, 0}};public static void main(String[] args) {Scanner sc = new Scanner(System.in);int m = sc.nextInt();int n = sc.nextInt();int[][] inputArr = new int[m][n];for (int i = 0; i < m; i++) {for (int j = 0; j < n; j++) {int d = sc.nextInt();inputArr[i][j] = d;if(d > 0) {Danyuange yuan = new Danyuange();yuan.setX(i);yuan.setY(j);yuan.setD(d);list.add(yuan);}}}int queryX = sc.nextInt();int queryY = sc.nextInt();while (list.size() > 0) {Danyuange danyuange = list.removeFirst();kuosanMethod(inputArr, danyuange);}System.out.println(inputArr[queryX][queryY]);}private static void kuosanMethod(int[][] inputArr, Danyuange danyuange) {int x = danyuange.getX();int y = danyuange.getY();int d = danyuange.getD();for (int i = 0; i < 4; i++) {int newX = x + zhouweiArr[i][0];int newY = y + zhouweiArr[i][1];if(newX >= 0 && newX < inputArr.length && newY >= 0 && newY < inputArr[0].length) {if(inputArr[newX][newY] == 0) {inputArr[newX][newY] = d - 1;}if(inputArr[newX][newY] < d && inputArr[newX][newY] >= 2 && inputArr[newX][newY] != -1) {Danyuange newDanyuange = new Danyuange();newDanyuange.setX(newX);newDanyuange.setY(newY);newDanyuange.setD(d-1);list.add(newDanyuange);}}}}private static class Danyuange {int x;int y;int d;public int getX() {return x;}public void setX(int x) {this.x = x;}public int getY() {return y;}public void setY(int y) {this.y = y;}public int getD() {return d;}public void setD(int d) {this.d = d;}}
}

相关文章:

华为OD算法题汇总

60、计算网络信号 题目 网络信号经过传递会逐层衰减&#xff0c;且遇到阻隔物无法直接穿透&#xff0c;在此情况下需要计算某个位置的网络信号值。注意:网络信号可以绕过阻隔物 array[m][n]&#xff0c;二维数组代表网格地图 array[i][j]0&#xff0c;代表i行j列是空旷位置 a…...

服务器的rabbitmq的guest账号登不进去

要配置 RabbitMQ 允许 guest 账号从非 localhost 地址登录&#xff0c;需要执行以下步骤&#xff1a; 编辑 RabbitMQ 配置文件&#xff1a; 打开 RabbitMQ 的配置文件&#xff0c;通常位于 /etc/rabbitmq/rabbitmq.conf 或者 /etc/rabbitmq/rabbitmq-env.conf。如果这些文件不存…...

决策树(ID3,C4.5,C5.0,CART算法)以及条件推理决策树R语言实现

### 10.2.1 ID3算法基本原理 ### mtcars2 <- within(mtcars[,c(cyl,vs,am,gear)], {am <- factor(am, labels c("automatic", "manual"))vs <- factor(vs, labels c("V", "S"))cyl <- ordered(cyl)gear <- ordered…...

文心一言《使用手册》,文心一言怎么用?

一、认识文心一言 &#xff08;一&#xff09;什么是文心一言 文心一言是百度研发的 人工智能大语言模型产品&#xff0c;能够通过上一句话&#xff0c;预测生成下一段话。 任何人都可以通过输入【指令】和文心一言进行对话互动、提出问题或要求&#xff0c;让文心一言高效地…...

Spring Boot集成qwen:0.5b实现对话功能

1.什么是qwen:0.5b&#xff1f; 模型介绍&#xff1a; Qwen1.5是阿里云推出的一系列大型语言模型。 Qwen是阿里云推出的一系列基于Transformer的大型语言模型&#xff0c;在大量数据&#xff08;包括网页文本、书籍、代码等&#xff09;进行了预训练。 硬件要求&#xff1a;…...

GreenDao实现原理

GreenDao 是一款针对 Android 平台优化的轻量级对象关系映射 (ORM) 框架&#xff0c;它将 Java 对象映射到 SQLite 数据库&#xff0c;以简化数据持久化操作。GreenDao 的主要优点包括高性能、低内存占用、易于使用以及对数据库加密的支持。 以下是基于源码的 GreenDao 实现原…...

Perl语言之数组

Perl数组可以存储多个标量&#xff0c;并且标量数据类型可以不同。   数组变量以开头。访问与定义格式如下&#xff1a; #! /usr/bin/perl arr("asdfasd",2,23.56,a); print "输出所有:arr\n"; print "arr[0]$arr[0]\n"; #输出指定下标 print…...

写材料word和PPT

一、WORD 1、写内容 2、参考GPT改&#xff1a;内容、逻辑结构、语句 3、查标题及其标号 4、修改格式&#xff1a;仿宋 、正文统一为小三&#xff0c;标题三号&#xff0c;1.5倍行距&#xff0c;加页码。 采用VBA代码自动修改&#xff0c;不知为何标题无法修改字体 Sub 插入页…...

Centos---命令详解 vi 系统服务 网络

目录 一、CentOS vi命令详解 二、CentOS系统服务命令 三、CentOS权限管理命令&#xff1a; 四、CentOS网络管理命令介绍&#xff1a; 一、CentOS vi命令详解 Vi是一款强大的文本编辑器&#xff0c;在CentOS中广泛使用。以下是Vi编辑器的一些常用命令&#xff1a; 1. 打开…...

【.NET全栈】ASP.NET开发web应用——ASP.NET中的样式、主题和母版页

文章目录 前言一、在ASP.NET中应用CSS样式1、创建CSS样式&#xff08;1&#xff09;内联样式&#xff08;2&#xff09;内部样式表&#xff08;3&#xff09;外部样式表 2、应用CSS样式&#xff08;1&#xff09;菜鸟教程-简单例子&#xff08;2&#xff09;菜鸟教程-用户界面&…...

[ruby on rails]部署时候产生ActiveRecord::PreparedStatementCacheExpired错误的原因及解决方法

一、问题&#xff1a; 有时在 Postgres 上部署 Rails 应用程序时&#xff0c;可能会看到 ActiveRecord::PreparedStatementCacheExpired 错误。仅当在部署中运行迁移时才会发生这种情况。发生这种情况是因为 Rails 利用 Postgres 的缓存准备语句(PreparedStatementCache)功能来…...

函数传值面试题

let a {name: aa };function fun1(a) {a []; // 这里创建了一个新的局部变量a&#xff0c;它是一个空数组// a.name "芜湖" }fun1(a); // 调用fun1&#xff0c;传入a的引用副本 console.log(a); // 输出&#xff1a;{ name: aa }在 JavaScript 中&#xff0c;当你…...

redis笔记2

redis是用c语言写的,放不频繁更新的数据&#xff08;用户数据。课程数据&#xff09; Redis 中&#xff0c;"穿透"通常指的是缓存穿透&#xff08;Cache Penetration&#xff09;问题&#xff0c;这是指一种恶意或非法请求直接绕过缓存层&#xff0c;直接访问数据库或…...

Kafka(四) Consumer消费者

一&#xff0c;基础知识 1&#xff0c;消费者与消费组 每个消费者都有对应的消费组&#xff0c;不同消费组之间互不影响。 Partition的消息只能被一个消费组中的一个消费者所消费&#xff0c; 但Partition也可能被再平衡分配给新的消费者。 一个Topic的不同Partition会根据分配…...

前端路由手写Hash和History两种模式

文章目录 1. Hash模式&#xff1a;简洁而广泛适用2. History模式&#xff1a;更自然的用户体验3. 结论 在现代Web开发中&#xff0c;单页面应用&#xff08;Single Page Application&#xff0c;简称SPA&#xff09;因其流畅的用户体验和高效的页面交互能力而备受青睐。前端路由…...

Redis的单线程讲解与指令学习

目录 一.Redis的命令 二.数据类型 三.Redis的key的过期策略如何实现&#xff1f; 四.Redis为什么是单线程的 五.String有关的命令 Redis的学习专栏&#xff1a;http://t.csdnimg.cn/a8cvV 一.Redis的命令 两个基本命令 在Redis当中&#xff0c;有两个基本命令&#xff1…...

为什么MySQL会选择B+树作为索引

为什么MySQL会选择B树作为索引 在数据库管理系统中&#xff0c;索引是提升查询效率的关键技术之一。MySQL作为广泛使用的关系型数据库管理系统&#xff0c;其核心存储引擎InnoDB选择B树作为其索引结构&#xff0c;这一选择背后蕴含了深刻的性能和存储效率考量。本文将简要介绍…...

k8s secret-从环境变量里去读和从yaml文件里读取secret有什么区别?

从环境变量和YAML文件中读取Kubernetes Secret的区别主要体现在使用方式、动态更新能力以及管理便捷性上。以下是详细的区别说明&#xff1a; 1. **使用方式**&#xff1a; - **环境变量方式**&#xff1a;Kubernetes允许将Secret作为环境变量注入到Pod的容器中。这种方式的好处…...

Springboot+Aop用注解实现阿里云短信验证码校验,校验通过自动删除验证码缓存

1.新建操作类型枚举&#xff08;这里的IEnum是我自定义的http请求拦截接口&#xff0c;不需要的话可以不用实现&#xff09; Getter AllArgsConstructor public enum OperationType implements IEnum<Integer> {/*** 注册*/SIGN_UP(0),/*** 密码登录*/LOGIN_BY_PWD(1),/…...

无线物联网新时代,RFID拣货标签跟随潮流

拣选技术的演变历程&#xff0c;本质上是从人力操作向自动化、智能化转型的持续进程。近期&#xff0c;“货寻人”技术成为众多企业热烈追捧的对象&#xff0c;它可以根据企业的特定需求&#xff0c;从众多拣选方案中选出最优解。那么&#xff0c;在采用“货到人”拣选技术时&a…...

昇腾环境300v pro 搭建qwen3 vl

1.启动dockerdocker run -itd \--name qwen-vl-serve \--nethost \--device/dev/davinci0 \--device/dev/davinci_manager \--device/dev/devmm_svm \--device/dev/hisi_hdc \-v /home/zhouty/Qwen3-VL-8B-Instruct:/workspace/models \-v /usr/local/Ascend/driver:/usr/local…...

AI应用开发

1.规划 2.记忆 2.工具 3.行动...

武汉专升本民办 vs 公办机构怎么选

每年到了专科大三的春天&#xff0c;武汉的专升本备考群里总会出现类似的问题&#xff1a;“公办机构是不是比民办靠谱&#xff1f;”“民办会不会拿钱不办事&#xff1f;”“集训营到底该冲公办还是选民办&#xff1f;”说实话&#xff0c;这个问题没有标准答案&#xff0c;因…...

GF6-WFV数据FLAASH大气校正避坑全记录:参数设置、光谱响应函数选择与结果验证

GF6-WFV数据FLAASH大气校正实战指南&#xff1a;从参数优化到结果验证 当处理国产高分六号卫星WFV相机数据时&#xff0c;大气校正环节往往是整个流程中的关键瓶颈。不同于常规Landsat或Sentinel数据&#xff0c;GF6-WFV特有的波段设置和响应特性使得FLAASH参数配置充满陷阱。本…...

SAP财务实操:FBV0/FB08凭证冲销与FBV1预制凭证的完整流程(附BADI增强代码)

SAP财务凭证处理实战&#xff1a;从冲销到增强的全链路解决方案 月末关账前发现凭证金额错误怎么办&#xff1f;批量处理上百张供应商发票如何避免手工录入&#xff1f;这些场景恰恰是SAP财务模块中FBV0、FBV1、FB08等事务代码的核心战场。本文将带您穿透事务代码的表层操作&am…...

端侧AI平民化:轻量专家模型+动态调度实现千元机本地大模型推理

1. 项目概述&#xff1a;这不是又一个“AI手机App”&#xff0c;而是一次对算力平民化的重新定义 “Enter Project Gecko: AI in Your Pocket, Without the Premium Price Tag”——这个标题里没有一个生僻词&#xff0c;但每个词都在精准刺向当前AI消费端的痛点。我做终端AI落…...

AutoDL新手避坑:Ubuntu 20.04安装Xfce4桌面环境,告别VNC黑屏

AutoDL云平台Xfce4桌面环境配置全攻略&#xff1a;从零搭建到VNC可视化开发 对于刚接触AutoDL等云GPU平台的新手开发者而言&#xff0c;命令行操作往往成为第一道门槛。当需要运行PaddleX这类图形化AI开发工具时&#xff0c;配置可用的远程桌面环境更是常见痛点。本文将彻底解决…...

“冠珠·美乐童行”公益行动走进广州市增城区高滩小学,唱响爱、筑就美

在520爱家日十周年之际&#xff0c;冠珠瓷砖积极响应国家美育浸润与乡村教育振兴的政策号召&#xff0c;暖心开启 “冠珠美乐童行”公益行动。首站活动由冠珠瓷砖、广州市越秀山体育中心共同主办&#xff0c;以 “乐动童心美育同行” 为主题&#xff0c;走进广州市增城区高滩小…...

BarrageGrab:构建企业级直播弹幕实时采集系统的技术架构与实践指南

BarrageGrab&#xff1a;构建企业级直播弹幕实时采集系统的技术架构与实践指南 【免费下载链接】BarrageGrab 抖音快手bilibili直播弹幕wss直连&#xff0c;非系统代理方式&#xff0c;无需多开浏览器窗口 项目地址: https://gitcode.com/gh_mirrors/ba/BarrageGrab 在直…...

Cadence AMS数模混合仿真保姆级教程:从Virtuoso环境搭建到仿真加速全流程

Cadence AMS数模混合仿真实战指南&#xff1a;从环境配置到性能调优 数模混合仿真在现代集成电路设计中扮演着关键角色&#xff0c;它打破了传统数字与模拟设计之间的壁垒&#xff0c;让工程师能够在统一环境中验证复杂SoC的系统级行为。Cadence AMS Designer作为行业标杆工具&…...