OD C卷 - 反射计数

反射计数(200)

  • 给定一个包含0 、1的二维矩阵;
  • 一个物体从给定的初始位置出发,在给定的速度下移动,遇到矩阵的边缘则发生镜面反射,无论物体经过0还是1,都不影响其速度;
  • 经过t时间单位后,物体经过1点的次数(初始位置为1也计入);
    输入描述:
    第一行为初始信息 w h x y sx sy t
    w h 为矩阵的宽度、高度 w在(0,100) h在(0,1000)
    x y 为初始位置,x对应的列索引,y对应行索引;
    sx sy 为初始速度,范围 [-1, 1],正方向为右或者下
    t 为经过的时间,范围 [0, 100)
    输出描述:
    经过1的次数

示例1
输入:
12 7 2 1 1 -1 13
001000010000
001000010000
001000010000
001000010000
001000010000
001000010000
001000010000
输出:
3

思路:

  • 简单模拟过程即可,注意起点为1时计入在内;
  • 行走过程
    在这里插入图片描述

# 输入第一行数据
w, h, x, y, sx, sy, t = [int(x) for x in input().split()]

# 0 1 矩阵
matrix = [[0 for i in range(w)] for j in range(h)]
for i in range(h):
    input_str = input().strip()
    for j in range(w):
        matrix[i][j] = int(input_str[j])

# 起始位置开始走
if matrix[y][x] == 1:
    result = 1
else:
    result = 0

while True:
    if t == 0: # 时间已走完
        break
    else:
        # 列 的反射
        if (x + sx < 0) or (x + sx > w - 1):
            sx = -sx
        # 行 的反射
        elif (y + sy < 0) or (y + sy > h - 1):
            sy = -sy # 反射
        # 走一步
        x += sx
        y += sy
        if matrix[y][x] == 1:
            result += 1

    t -= 1
print(result)

 

相关推荐

  1. 2024华为OD机试真题-出租车计费-C++(CD)

    2024-03-28 14:34:02       34 阅读
  2. <span style='color:red;'>反射</span>...

    反射...

    2024-03-28 14:34:02      26 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-28 14:34:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-28 14:34:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-28 14:34:02       82 阅读
  4. Python语言-面向对象

    2024-03-28 14:34:02       91 阅读

热门阅读

  1. Perl基本语法

    2024-03-28 14:34:02       35 阅读
  2. PLSQL工具获取AWR报告的方法

    2024-03-28 14:34:02       37 阅读
  3. C语言内存函数(memcpy及memove的了解与使用)

    2024-03-28 14:34:02       35 阅读
  4. catch2测试框架学习

    2024-03-28 14:34:02       38 阅读
  5. OceanBase中左外连接和反连接的经验分享

    2024-03-28 14:34:02       55 阅读
  6. C++ 内存泄漏-原因、避免、定位

    2024-03-28 14:34:02       34 阅读
  7. HTTPS ECDHE握手内容解析

    2024-03-28 14:34:02       36 阅读