绘图机器(C 语言)

news/2024/7/20 18:51:21 标签: c语言, 算法, 数据结构, 华为od

题目来自于博主算法大师的专栏:最新华为OD机试C卷+AB卷+OJ(C++JavaJSPy) https://blog.csdn.net/banxia_frontend/category_12225173.html

题目

绘图机器的绘图笔初始位置在原点(0,0)
机器启动后按照以下规则来进行绘制直线

  1. 尝试沿着横线坐标正向绘制直线
    直到给定的终点E
  2. 期间可以通过指令在纵坐标轴方向进行偏移
    offsetY为正数表示正向偏移,为负数表示负向偏移
    给定的横坐标终点值E 以及若干条绘制指令
    请计算绘制的直线和横坐标轴以及x = E的直线组成的图形面积

输入

首行为两个整数NE
表示有N条指令,机器运行的横坐标终点值E
接下来N行 每行两个整数表示一条绘制指令x offsetY
用例保证横坐标x以递增排序的方式出现
且不会出现相同横坐标x
取值范围:
0 < N <= 10000
0 <= x <= E <= 20000
-10000 <= offsetY <= 10000

输出

一个整数表示计算得到的面积 用例保证结果范围在04294967295之内

示例一

输入

4 10
1 1
2 1
3 1
4 -2

输出

12

示例二

输入

2 4
0 1
2 -2

输出

4

代码

#include <stdio.h>
#include <stdlib.h>
typedef struct {
    int x;
    int offsetY;
} Pos;

int main() {
    int N, E;
    scanf("%d %d", &N, &E);
    Pos pos[N + 1];
    for (int i = 0; i < N; i++) {
        scanf("%d %d", &pos[i].x, &pos[i].offsetY);
    }

    int currentY = 0;
    int sumArea = 0;

    // 添加终点作为最后一条指令
    pos[N].x = E;
    pos[N].offsetY = 0;
    for (int i = 0; i < N; i++) {
        int base = pos[i + 1].x - pos[i].x;
        int height = currentY + pos[i].offsetY;
        sumArea += base * abs(height);

        currentY += pos[i].offsetY; // 更新当前纵坐标偏移
    }
    printf("%d", sumArea);
    return 0;
}

http://www.niftyadmin.cn/n/5391424.html

相关文章

chrome闪退后打不开问题 打开立即闪退

今天刚遇到&#xff0c;大概率是某些网站引起的闪退&#xff0c;重启和清理也不能解决问题 网上到处都是答非所问&#xff0c;还有什么打开chrome再进行设置这种回答 在此解决下 注意该方法根据我测试&#xff0c;唯一会损失的是chrome扩展&#xff0c;可以提前去 C:\Users…

Camunda7.18流程引擎启动出现Table ‘camunda_platform_docker.ACT_GE_PROPERTY‘的解决方案

文章目录 1、问题描述2、原因分析3、解决方案3.1、方案一&#xff1a;降低mysql版本3.2、方案二&#xff1a;增加nullCatalogMeansCurrent参数&#xff08;推荐&#xff09; 4、总结 1、问题描述 需要在docker中&#xff0c;部署Camunda流程引擎。通过启动脚本camunda-platfor…

C语言:指针的进阶讲解

目录 1. 二级指针 1.1 二级指针是什么&#xff1f; 1.2 二级指针的作用 2. 一维数组和二维数组的本质 3. 指针数组 4. 数组指针 5. 函数指针 6. typedef的使用 7. 函数指针数组 7.1 转移表 1. 二级指针 如果了解了一级指针&#xff0c;那二级指针也是可以很好的理解…

机器学习模型的过拟合与欠拟合

机器学习模型的训练过程中&#xff0c;可能会出现3种情况&#xff1a;模型欠拟合、模型正常拟合与模型过拟合。其中模型欠拟合与模型过拟合都是不好的情况。下面将会从不同的角度介绍如何判断模型属于哪种拟合情况。 &#xff08;1&#xff09;欠拟合与过拟合表现方式 欠拟合…

Llama2模型的优化版本:Llama-2-Onnx

Llama2模型的优化版本&#xff1a;Llama-2-Onnx。 Llama-2-Onnx是Llama2模型的优化版本。Llama2模型由一堆解码器层组成。每个解码器层&#xff08;或变换器块&#xff09;由一个自注意层和一个前馈多层感知器构成。与经典的变换器相比&#xff0c;Llama模型在前馈层中使用了不…

Flink:流上的“确定性”(Determinism)

1. 什么是“确定性” 先明确一下什么叫“确定性”&#xff1a;对于一个“操作”来说&#xff0c;如果每次给它的“输入”不变&#xff0c;操作输出的“结果”也不变&#xff0c;那么这个操作就是“确定性“的。通常&#xff0c;我们认为批处理的操作都是确定的&#xff0c;比如…

iotdb集群模式部署

iotdb集群模式部署 重要声明:部署的版本要和脚本对应上,这里可以点击 来获取最新的脚本; 我使用的是1.3.0版本的iotdb 下面是我基于三个节点的部署步骤: 假如有三台物理机,里面安装了centos系统,它们的hostname分别是iotdb-1、iotdb-2、iotdb-3 1、设置网络 vim /…

设计模式之兼容不同厂家的相机

在工业自动化行业呆过的朋友大都接触过不同厂家的相机,而机器视觉系统使用不同品牌的相机主要有以下几点原因: 性能和功能:不同品牌的相机在性能和功能方面可能有所区别。某些应用场景需要高分辨率、高速度、低噪声等特性,而其他应用则可能更关注相机的灵活性、接口类型、图…