绘图机器 - 华为OD统一考试(C卷)

news2024/11/25 4:42:27

OD统一考试(C卷)

分值: 100分

题解: Java / Python / C++

alt

题目描述

绘图机器的绘图笔初始位置在原点(0, 0),机器启动后其绘图笔按下面规则绘制直线:

1)尝试沿着横向坐标轴正向绘制直线,直到给定的终点值E。

2)期间可通过指令在纵坐标轴方向进行偏移,并同时绘制直线,偏移后按规则1 绘制直线;指令的格式为X offsetY,表示在横坐标X 沿纵坐标方向偏移,offsetY为正数表示正向偏移,为负数表示负向偏移。

给定了横坐标终点值E、以及若干条绘制指令,请计算绘制的直线和横坐标轴、以及 X=E 的直线组成图形的面积。

输入描述

首行为两个整数N E,表示有N条指令,机器运行的横坐标终点值E;

接下来N行,每行两个整数表示一条绘制指令X offsetY,用例保证横坐标X以递增排席方式出现,目不会出现相同横坐标X;

取值范围: 0<N<=10000,0<= X<=E<=20000,-10000 <= offsetY <= 10000。

输出描述

一个整数,表示计算得到的面积,用例保证,结果范围在0~4294967295内

示例1

输入:
4 10
1 1
2 1
3 1
4 -2

输出:
12

image-20240213203445916

示例2

输入:
2 4
0 1
2 -2

输出:
4

image-20240213203601861

题解

这是一个简单的几何题,通过读取指令和横坐标值,计算出图形的总面积。以下是对该问题的解法总结:

  1. 解题思路: 按要求读取每个指令,根据指令更新绘图笔位置并计算相应的面积。
  2. 代码描述:
    • 初始化图形总面积 totalArea 和绘图笔位置 (x, y)
    • 读取每个指令,计算当前边和前一条边组成的面积,并更新绘图笔位置。
    • 最后计算最后一条边组成的面积。
    • 输出结果。

Java

import java.util.Scanner;

/**
 * @author code5bug
 */

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        // 读取输入的 N 和 E
        int N = in.nextInt(), E = in.nextInt();

        // 初始化图形总面积
        long totalArea = 0;
        // 绘图笔位置 (x, y)
        int x = 0, y = 0;

        // 读取命令并存储在数组中
        for (int i = 0; i < N; i++) {
            int curX = in.nextInt(), offsetY = in.nextInt();
            // 累计当前边和前一条边组成的面积
            totalArea += 1L * (curX - x) * Math.abs(y);

            // 更新绘图笔位置
            x = curX;
            y += offsetY;
        }

        // 计算最后一条边组成的面积
        totalArea += (E - x) * Math.abs(y);

        // 输出结果
        System.out.println(totalArea);
    }
}

Python

N, E = map(int, input().split())

# 图形总面积, 绘图笔位置 (x, y)
total_area, x, y = 0, 0, 0

for _ in range(N):
    cur_x, offset_y = map(int, input().splitt())
    # 累计当前边和前一条边组成的面积
    total_area += (cur_x - x) * abs(y)
    # 更新绘图笔位置
    x, y = cur_x, y + offset_y

# 最后一条边的面积
total_area += (E - x) * abs(y)

print(total_area)

C++

#include <iostream>

using namespace std;

int main() {
    // 读取输入的 N 和 E
    int N, E;
    cin >> N >> E;

    // 初始化图形总面积
    long long totalArea = 0;
    // 绘图笔位置 (x, y)
    int x = 0, y = 0;

    // 读取命令并存储在数组中
    for (int i = 0; i < N; i++) {
        int curX, offsetY;
        cin >> curX >> offsetY;

        // 累计当前边和前一条边组成的面积
        totalArea += 1LL * (curX - x) * abs(y);

        // 更新绘图笔位置
        x = curX;
        y += offsetY;
    }

    // 计算最后一条边组成的面积
    totalArea += 1LL * (E - x) * abs(y);

    // 输出结果
    cout << totalArea << endl;

    return 0;
}

‍❤️‍华为OD机试面试交流群每日真题分享): 加V时备注“华为od加群”

🙏整理题解不易, 如果有帮助到您,请给点个赞 ‍❤️‍ 和收藏 ⭐,让更多的人看到。🙏🙏🙏

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

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

相关文章

基于51单片机的智能睡眠呼吸检测系统[proteus仿真]

基于51单片机的智能睡眠呼吸检测系统[proteus仿真] 呼吸检测系统这个题目算是课程设计和毕业设计中常见的题目了&#xff0c;本期是一个基于51单片机的智能睡眠呼吸检测系统[proteus仿真] 需要的源文件和程序的小伙伴可以关注公众号【阿目分享嵌入式】&#xff0c;赞赏任意文…

【NR 定位】3GPP NR Positioning 5G定位标准解读(五)

前言 3GPP 标准网址&#xff1a;Directory Listing /ftp/ 【NR 定位】3GPP NR Positioning 5G定位标准解读&#xff08;一&#xff09;-CSDN博客 【NR 定位】3GPP NR Positioning 5G定位标准解读&#xff08;二&#xff09;-CSDN博客 【NR 定位】3GPP NR Positioning 5G定位…

远程调用--webClient

远程调用webClient 前言1、创建webClient2、准备数据3、执行请求4、接收返回响应到的数据整体代码 前言 非阻塞、响应式HTTP客户端 1、创建webClient WebClient client WebClient.create();2、准备数据 Map<String,String> params new HashMap<>();params.pu…

【Python】Python教师/学生信息管理系统 [简易版] (源码)【独一无二】

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

#WEB前端

1.实验&#xff1a;vscode安装&#xff0c;及HTML常用文本标签 2.IDE&#xff1a;VSCODE 3.记录&#xff1a; &#xff08;1&#xff09;网页直接搜索安装vscode &#xff08;2&#xff09;打开vscode&#xff0c;在下图分别安装以下插件&#xff1a; Html Css Support …

《TCP/IP详解 卷一》第10章 UDP 和 IP 分片

目录 10.1 引言 10.2 UDP 头部 10.3 UDP校验和 10.4 例子 10.5 UDP 和 IPv6 10.6 UDP-Lite 10.7 IP分片 10.7.1 例子&#xff1a;IPV4 UDP分片 10.7.2 重组超时 10.8 采用UDP的路径MTU发现 10.9 IP分片和ARP/ND之间的交互 10.10 最大UDP数据报长度 10.11 UDP服务器…

5G网络架构与组网部署01--5G网络架构的演进趋势

目录 1. 5G网络架构的演进趋势 1.1 5G移动通信系统整体架构 1.2 4G移动通信系统整体架构 1.3 4G与5G移动通信系统整体架构对比 1.4 核心网架构演进 1.5 无线接入网演进 1. 整体架构组成&#xff1a;接入网&#xff0c;核心网 2. 5G网络接入网和核心网对应的网元&#xff…

判断回文字符串

判断回文字符串 题目描述&#xff1a;解法思路&#xff1a;解法代码&#xff1a;运行结果&#xff1a; 题目描述&#xff1a; 输入⼀个字符串&#xff0c;判断这个字符串是否是回文字符串&#xff08;字符串的长度小于等于30&#xff0c;字符串不包含空格&#xff09;&#xf…

【力扣精选算法100道】——判定是否互为字符重排(哈希专题)

目录 &#x1f6a9;了解题意 &#x1f6a9;算法原理 第一种&#xff1a;排序 第二种方法&#xff1a;哈希 &#x1f6a9;实现代码 面试题 01.02. 判定是否互为字符重排 - 力扣&#xff08;LeetCode&#xff09; &#x1f6a9;了解题意 我们输入俩个字符串&#xff0c;当俩…

FPGA时序约束与分析--建立时间与保持时间

文章目录 前言一、定义二、举例说明2.1 建立时间违规2.2 保持时间违规前言 时序约束的定义–设计者根据实际的系统功能,通过时序约束的方式提出时序要求; FPGA 编译工具根据设计者的时序要求,进行布局布线;编译完成后, FPGA 编译工具还需要针对布局布线的结果,套用特定的…

基于SSM的农业电商服务系统(农产品销售管理系统)(有报告)。Javaee项目。ssm项目。

演示视频&#xff1a; 基于SSM的农业电商服务系统&#xff08;农产品销售管理系统&#xff09;&#xff08;有报告&#xff09;。Javaee项目。ssm项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#…

【Python】批量读取文件夹中的excel文件

示例展示 代码 import os import pandas as pd folder_path r"C:\Users\admin\Desktop\excelfile" extension"xlsx" files [file for file in os.listdir(folder_path) if file.endswith(. extension)] for file in files:filepath os.path.join(folde…

嵌入式基础知识-信号量,PV原语与前趋图

本篇来介绍信号量与PV原语的一些知识&#xff0c;并介绍其在前趋图上的应用分析。本篇的知识属于操作系统部分的通用知识&#xff0c;在嵌入式软件开发中&#xff0c;同样会用到这些知识。 1 信号量 信号量是最早出现的用来解决进程同步与互斥问题的机制&#xff08;可以把信…

Spring Boot2.2.4版本启动项目时,访问登录接口显示页面不存在

问题触发场景&#xff1a;IDEA 2023.3.4 SpringBoot 2.2.4 上面4张图片分别是项目结构、Spring Boot启动配置、SpringMVC配置和页面展示在项目中存放的位置&#xff0c;表面上看上去没有太大问题&#xff0c;项目应该会达到预期结果&#xff0c;但是bug总是在不经意间出现&…

华为路由器QOS限速实验

此配置只适合分配好VLAN的各项业务&#xff0c;例如&#xff1a;vlan10是视频业务&#xff0c;vlan20是语音业务等。 1.配置流分类 [ar1]traffic classifier c1 operator and [ar1-classifier-c1]if-match vlan-id 10 [ar1-classifier-c1]q [ar1]traffic classifier c2 oper…

nginx-图片模块

./configure --with-http_image_filter_module location / {root html;index index.html index.htm;if ($arg_w "") {set $arg_w -;}if ($arg_h "") {set $arg_h -;}image_filter resize $arg_w $arg_h;image_filter_jpeg_quality 95; } 访问: 1234…

进程间通信之消息队列及共享内存

1.IPC对象: 内存文件 1.ipcs 查看系统重的消息队列、共享内存、信号灯的信息 2.ipcrm 删除消息队列、共享内存、信号灯 ipcrm -Q/-M/-S key ipcrm -q/-m/-s 消息队列ID/共享内存ID/信号灯ID 消息队列&#xff1a; 3.操作流程: …

Three.js--》探寻Cannon.js构建震撼的3D物理交互体验(一)

我们用three.js可以绘制出各种酷炫的画面&#xff0c;但是当我们想要一个更加真实的物理效果的话&#xff0c;这个时候我们就需要一个物理的库&#xff0c;接下来我们就讲解一下今天要学习的canon&#xff0c;它可以给我们提供一个更加真实的物理效果&#xff0c;像物体的张力、…

如何把chatgpt-on-wechat 与RWKV-Runner结合打造本地微信chatgpt机器人

环境&#xff1a; Win10 11代i7 64G内存 500G硬盘 chatgpt-on-wechat RWKV-Runner 问题描述&#xff1a; 如何把chatgpt-on-wechat 与RWKV-Runner结合打造本地微信chatgpt机器人 解决方案&#xff1a; chatgpt-on-wechat项目 有4种运行程序的方式供你选择&#xff1a; …

国科大计算机网络实验 HTTP服务器

UCAS_CN_LAB HTTP服务器实验 实验要求 •实现&#xff1a;使用C语言实现最简单的HTTP服务器 •同时支持HTTP&#xff08;80端口&#xff09;和HTTPS&#xff08;443端口&#xff09; •使用两个线程分别监听各自端口 •只需支持GET方法&#xff0c;解析请求报文&#xff…