华为OD机试 - 计算面积 - 逻辑分析(Java 2023 B卷 100分)

news2024/11/28 4:42:39

在这里插入图片描述

目录

    • 专栏导读
    • 一、题目描述
    • 二、输入描述
    • 三、输出描述
    • 四、解题思路
    • 五、Java算法源码
    • 六、效果展示
      • 1、输入
      • 2、输出
      • 3、说明

华为OD机试 2023B卷题库疯狂收录中,刷题点这里

专栏导读

本专栏收录于《华为OD机试(JAVA)真题(A卷+B卷)》。

刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天CSDN在线答疑。

一、题目描述

绘图机器的绘图笔初始位置在原点(0,0)。

机器启动后,其绘图笔按下面规则绘制直线:

  1. 尝试沿着横向坐标轴正向绘制直线,直到给定的终点值E;
  2. 期间可通过指令在纵坐标方向进行偏移,并同时绘制直线,偏移后按规则1绘制直线;
  3. 指令的格式为X offsetY。表示在横坐标X沿纵坐标方向偏移offsetY,offsetY为正整数,表示正向偏移,为负数,表示负向偏移。

给定了横坐标终点值E,以及若干条绘制指令。

请计算绘制的直线和横坐标轴,以及X-E的直线组成图形的面积。

二、输入描述

第一行输入两个正整数N、E。

  • N表示多少条指令;
  • E表示横坐标终点值;

接下来的N行输入两个正整数,表示指令X offsetY。

用例保证横坐标X以递增排序方式出现,且不会出现相同横坐标。

取值范围:

  • 0<N<=10000
  • 0<X<=E<=20000
  • -10000<=offsetY<=10000

三、输出描述

一个整数,表示计算得到的面积。

四、解题思路

  1. 第一行输入两个正整数N、E;
  2. 接下来的N行输入两个正整数,表示指令X offsetY;
  3. X轴坐标 * Y轴坐标计算面积;
  4. 叠加Y轴偏移量;
  5. 重置横坐标X;
  6. 叠加面积(横坐标终点值 - 当前横坐标) * Y轴坐标;
  7. 输出计算得到的面积。

五、Java算法源码

package com.guor.od;

import java.util.*;

public class OdTest {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int[] arr = Arrays.stream(sc.nextLine().split(" ")).mapToInt(Integer::parseInt).toArray();
        // 多少条指令
        int N = arr[0];
        // 横坐标终点值
        int E = arr[1];
        int area = 0;
        // X轴偏移量
        int xSkew = 0;
        // Y轴偏移量
        int ySkew = 0;
        // 接下来的N行输入两个正整数,表示指令X offsetY。
        for (int i = 0; i < N; ++i) {
            // 指令X offsetY
            String[] commands = sc.nextLine().split(" ");
            // 横坐标X
            int X = Integer.parseInt(commands[0]);
            // X轴坐标 * Y轴坐标计算面积
            area += Math.abs(ySkew) * (X - xSkew);
            // 叠加Y轴偏移量
            ySkew += Integer.parseInt(commands[1]);
            // 重置横坐标X
            xSkew = X;
        }
        // 叠加面积(横坐标终点值 - 当前横坐标) * Y轴坐标
        area += (E - xSkew) * ySkew;
        System.out.println(area);
    }
}

六、效果展示

1、输入

5 8
1 1
2 2
3 -1
4 -2
5 1

2、输出

9

3、说明

在这里插入图片描述

在这里插入图片描述


🏆下一篇:华为OD机试 - 荒岛求生 - 栈Stack(Java 2023 B卷 100分)

🏆本文收录于,华为OD机试(JAVA)真题(A卷+B卷)

刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天CSDN在线答疑。

在这里插入图片描述

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

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

相关文章

491. 递增子序列

题目链接&#xff1a; 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 思路&#xff1a; 注意的点&#xff1a;1.是在原有的序列里找递增的子序列 示例 2&#xff1a; 输入&#xff1a;nums [4,4,3,2,1] 输出&#xff1a;[[4,4]] 记一…

业务上云的容器排障与思考

1 前言 此前我们部门已经完成了业务上云的目标&#xff0c;而随着业务请求量的激增&#xff0c;上云应用系统也面临着一些复杂的故障和挑战。 下文我就结合最近的容器排障工作&#xff0c;跟大家一起探讨如何优化系统的性能、扩展性和容错能力&#xff0c;为读者提供参考和借鉴…

Python从入门到放弃系列教程01

Python从入门到放弃系列教程01 第一章 01 初识Python Python的起源 1989年&#xff0c;为了打发圣诞节假期&#xff0c;吉多范罗苏姆&#xff08;龟叔&#xff09;决定开发一个新的解释程序&#xff08;Python雏形&#xff09;&#xff0c;1991年&#xff0c;第一个Python解…

QT支持的平台

简述&#xff1a; Qt是一个商业和开源许可的跨平台应用程序和UI框架。它由Qt公司与Qt项目社区一起在开源治理模式下开发。 使用Qt&#xff0c;您可以编写一次GUI应用程序&#xff0c;然后将它们部署到桌面&#xff0c;移动和嵌入式操作系统中&#xff0c;而无需重写源代码。 Qt…

【医学影像数据处理】 Dicom 文件格式处理汇总

在医学影像的数据存储领域&#xff0c;是存在一定的行业标准的。X光、CT机器等等医疗器械等生产企业&#xff0c;会依据行业标准&#xff0c;对采集的数据进行规范化的存储。 这里面就包括了大名鼎鼎的DICOM 3.0协议&#xff0c;上述的摄影形式大部分也都是以这种形式进行存储…

Python实战:用多线程和多进程打造高效爬虫

文章目录 &#x1f34b;引言&#x1f34b;为什么要使用多线程和多进程&#xff1f;&#x1f34b;线程的常用方法&#x1f34b;线程锁&#xff08;也称为互斥锁或简称锁&#xff09;&#x1f34b;小案例&#x1f34b;实战---手办网&#x1f34b;总结 &#x1f34b;引言 在网络爬…

【JavaSpring】Aop的通知类型,获取数据

AOP 通知描述了抽取的共性功能&#xff0c;根据共性功能抽取的位置不同&#xff0c;最终运行代码时要将其加入到合理的位置 前置通知 Pointcut("execution(void org.example.dao.BookDao.update())")private void pt() {}Before("pt()")public void befo…

数据结构与算法:排序算法(2)

目录 堆排序 使用步骤 代码实现 计数排序 适用范围 过程 代码实现 排序优化 桶排序 工作原理 代码实现 堆排序 二叉堆的特性&#xff1a; 1. 最大堆的堆顶是整个堆中的最大元素 2. 最小堆的堆顶是整个堆中的最小元素 以最大堆为例&#xff0c;如果删除一个最大堆的…

基于Java开发的数字化询价招标采购系统(SRM系统源码)

在如今商业环境中&#xff0c;企业的采购流程变得越来越重要。传统的采购方式可能存在诸多弊端&#xff0c;例如效率低下、信息不透明、易滋生腐败等。为了解决这些问题&#xff0c;许多企业开始转向SRM&#xff08;供应商关系管理&#xff09;系统。本文将详细介绍SRM数字询价…

js表单autocomplete=‘off‘失效问题

众所周知。。。。autocomplete是Html5中的新属性&#xff0c;有‘off’,on’两个属性。作用是点击输入框时&#xff0c;会打开或者关闭提示信息。 部分浏览器也会出现失效的情况&#xff08;emmmm…&#xff0c;毕竟是html5新增的&#xff0c;有点bug也正常哈&#xff09;。 …

初识Java 10-1 集合

目录 泛型和类型安全的集合 基本概念 添加一组元素 打印集合 List Iterator&#xff08;迭代器&#xff09; 本笔记参考自&#xff1a; 《On Java 中文版》 在进行程序设计时我们会发现&#xff0c;程序总是会根据某些在运行时才能知道的条件来创建新的对象。这意味着&am…

Vue3 - 实现动态获取菜单路由和按钮权限控制指令

GitHub Demo 地址 在线预览 前言 关于动态获取路由已在这里给出方案 Vue - vue-admin-template模板项目改造&#xff1a;动态获取菜单路由 这里是在此基础上升级成vue3和ts&#xff0c;数据和网络请求是通过mock实现的 具体代码请看demo!!! 本地权限控制&#xff0c;具体是通过…

关于若依(ruoyi)前端,f12跟踪失效的问题处理

1、根据作者反馈&#xff0c;使用了vite-plugin-vue-setup-extend该插件&#xff1b; 2、参考作者指导&#xff0c;我采用了去掉这个插件的方法&#xff1b; 具体操作&#xff1a; &#xff08;1&#xff09;找到package.json,去掉该插件&#xff1b; &#xff08;2&#xff…

新的小伙伴加入,开始系统更新分享了

近几个月一直有一个好消息未跟大家分享&#xff0c;就是我们有新的小伙伴加入了&#xff0c;帅就不必说了&#xff0c;关键是对电控的理解那可不是一般的强&#xff0c;工程经验丰富&#xff0c;学术能力也是一等一的。我们有幸在一个公司工作&#xff0c;跟着一个企业导师学习…

10个值得关注的学习网站,知乎超30万人收藏,什么资源都可找到!

hi&#xff0c;大家好我是技术苟&#xff0c;每周准时上线为你带来实用黑科技&#xff01;由于公众号改版&#xff0c;现在的公众号消息已经不再按照时间顺序排送了。因此小伙伴们就很容易错过精彩内容。喜欢黑科技的小伙伴&#xff0c;可以将黑科技百科公众号设为标星&#xf…

Webstorm怎么导入插件

Webstorm怎么导入插件&#xff1a; 1.点击“File”&#xff0c;选择“Settings” 2.选择“Plugins” 3.如下图所示继续操作 4.选择想要导入的插件

【C++/Python】Windows用Swig实现C++调用Python(史上最简单详细,80岁看了都会操作)

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;公众号&#x1f448;&#xff1a;测试开发自动化【获取源码商业合作】 &#x1f449;荣__誉&#x1f448;&#xff1a;阿里云博客专家博主、5…

自动化测试:yaml结合ddt实现数据驱动!

在pythonunittestseleniumddt的框架中&#xff0c;数据驱动常见有以下几种方式实现&#xff1a; Csv/txtExcelYAML 本文主要给大家介绍测试数据存储在YAML文件中的使用场景。首先先来简单介绍一下YAML。 1. 什么是YAML 一种标记语言类似YAML&#xff0c;它实质上是一种通用…

方案:浅析AI视频分析与视频监控技术的工厂车间智能化监管方案

一、方案背景 工厂生产车间一般是从原材料到成品的流水作业&#xff0c;有大量器械和物料。为保障车间财产安全并提高生产效率&#xff0c;需要进行全面的监管。在生产制造流水线的关键工序中&#xff0c;不仅有作业过程监管需求&#xff0c;同时&#xff0c;也存在生产发生异…

全网最全知识图谱讲解!

什么是知识图谱 知识图谱标准化白皮书定义&#xff1a;知识图谱&#xff08;Knowledge Graph&#xff09;以结构化的形式描述客观世界中概念、实体及其关系&#xff0c;将互联网的信息表达成更接近人类认知世界的形式&#xff0c;提供了一种更好地组织、管理和理解互联网海量信…