最新华为OD机试真题-反射计数(200分)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员

✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解

💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导

👏 感谢大家的订阅➕ 和 喜欢💗

📎在线评测链接

反射计数 (200分)

华为OD

🌍 评测功能需要 =>订阅专栏<= 后联系清隆解锁~

🍓OJ题目截图

alt

🍰 反射计数

问题描述

给定一个由 0 和 1 组成的二维矩阵,以及一个初始位置和速度。有一个物体从给定的初始位置出发,以给定的速度移动。物体在矩阵边缘发生镜面反射,无论经过 0 还是 1 都不影响其速度。请计算经过 时间单位后,物体经过 1 点的次数。

注意:

  1. 初始位置的点是 1 时也计算在内。
  2. 时间的最小单位为 1,不考虑小于 1 个时间单位内经过的点。

输入格式

第一行包含七个整数 ,分别表示矩阵的宽度、高度、初始位置的列坐标、行坐标、初始速度的纵向分量、初始速度的横向分量和经过的时间。

接下来 行,每行包含 个整数,表示二维矩阵。

输出格式

一个整数,表示经过的 1 的次数。

样例输入

12 7 2 1 1 -1 13
001000010000
001000010000
001000010000
000100001000
001000010000
001000010000
001000010000

样例输出

3

数据范围

题解

从初始位置开始,在每个时间单位更新物体的位置。如果物体到达矩阵边缘,则反射其速度方向。每当物体经过一个新的位置时,检查该位置的值是否为 1,并更新计数器。

参考代码

  • Python
def count_ones(w, h, y, x, sy, sx, t, matrix):
    res = 0
    if matrix[x][y] == "1":
        res += 1

    for _ in range(t):
        xx = x + sx
        yy = y + sy
        if xx < 0 or xx >= h:
            sx = -sx
        if yy < 0 or yy >= w:
            sy = -sy
        x += sx
        y += sy
        if matrix[x][y] == "1":
            res += 1
    return res

w, h, y, x, sy, sx, t = map(int, input().split())
matrix = [list(input().strip()) for _ in range(h)]
print(count_ones(w, h, y, x, sy, sx, t, matrix))
  • Java
import java.util.Scanner;

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

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

最新华为OD机试-E+D卷 文章被收录于专栏

本专栏给大家提供了华为2024最新华为OD-E/D卷的题目汇总和(Java/Cpp/Python)三语言解析 + 部分题目提供OJ在线评测

全部评论
ACM银牌挺历害
点赞 回复 分享
发布于 07-10 05:19 吉林

相关推荐

09-10 17:03
已编辑
门头沟学院 算法工程师
本以为这个岗位会面大模型,没想到全是问传统NLP任务。1.&nbsp;深挖实习(解决了什么问题,如何解决,以及评估效果如何?)2.&nbsp;是否熟悉序列标注任务?能否举例说明NER任务的输入输出是什么?(坦诚告诉面试官之前没做过,但是面试官并没有放过我,在随后的时间里便围绕这个问题疯狂拷打我)3.&nbsp;如何从电商数据(关于手机的)中抽取品牌、颜色、内存等信息?请提供一个方案,解释数据标注、模型选型、模型训练和结果评估的过程(因为没做过NER所以回答的不好)4.&nbsp;如果一个实体被错误分词,会怎样影响到NER的识别?如何解决这个问题(已经跟面试过说了没做过NER,但依然不放过我5.&nbsp;解释一下word&nbsp;embedding是什么。为什么要引入这个?都了解过哪些embedding?介绍一下它们之间的优劣6.&nbsp;word2vec中skip-gram和cbow的目标函数分别是什么?7.&nbsp;如果vocabulary&nbsp;size过大如何解决?(我回答了可以用hierachical&nbsp;softmax或negative&nbsp;sampling)8.&nbsp;面试官开始围绕hierachical&nbsp;softmax对我进行疯狂拷打,让我从0到1讲一下完整的思路,并问我如何用代码去实现,实现的时候需要注意哪些细节(没想到会问这么细,卒9.&nbsp;为什么transformer会比rnn,&nbsp;lstm这些网络更加有效?它有哪些优势?(我回答了长距离依赖,并行计算等)10.&nbsp;transformer的并行计算主要得益于哪里?(我提到了attention,面试官说不对,应该是pe那一块11.&nbsp;都有哪些pe的方法?12.&nbsp;深挖论文(你参与的论文解决了什么问题?现有的方法是什么?你们的改进如何提高效果?如何证明你们的方法优于现有的方法?)13.&nbsp;无手撕代码面完后体验不是很好,在一开始我就跟面试官说过了我是做大模型的,传统NLP任务虽有接触但不多,并也坦诚告知了面试官我没做过NER任务,但面试官没有放过我,就此问题拷打了我将近15分钟,最后还说要控制面试时间所以先不问这个了&nbsp;包括一开始面试官还要求我单方面开摄像头,但我看面试官没开我就不是很想开,他说公司规定不开就要换一个面试时间,我不是很理解,于是反问你不用开摄像头吗?后来他好像也很无奈才开了。在反问环节,面试过看我是做大模型的,并且传统NLP相关的问题没有回答好,就开始一个劲的向我灌输即使是LLM时代,传统NLP仍有一席之地,甚至可以占到50%,然后就开始叽里呱啦地说它的一堆好处。虽然但是这句话可能没毛病,但听起来总觉得有些不舒服
查看11道真题和解析
点赞 评论 收藏
分享
1 3 评论
分享
牛客网
牛客企业服务