【秋招笔试题】机器人的数量

embedded/2024/10/10 18:11:21/

内存限制: 65536KB

题目描述:
今天,我们要进入一个充满机器人的神奇科技世界。这是一张由小红科技总部最新研发的网络格地图。每个格子都绘制着标志——它们标示着机器人的行进方向;这些标志会让机器人进入它们指向的下一个相邻格子。

网格有 n 行 m 列的地图,左上角为 (1,1),右下角为 (n,m)。每个格子有一个滑行带,前进方向为 L,R,U,D,分别表示左右上下四个方向。

  1. 如果滑出时刻,机器人位于 (i,j) 且滑行方向为 L,则第 t+1 时刻机器人位于 (i,j-1)。
  2. 如果滑出时刻,机器人位于 (i,j) 且滑行方向为 R,则第 t+1 时刻机器人位于 (i,j+1)。
  3. 如果滑出时刻,机器人位于 (i,j) 且滑行方向为 U,则第 t+1 时刻机器人位于 (i-1,j)。
  4. 如果滑出时刻,机器人位于 (i,j) 且滑行方向为 D,则第 t+1 时刻机器人位于 (i+1,j)。

已知滑行带不会让机器人滑出地图范围。地图最大行列不超过 (5 \times 10^5) 网格。地图上到达某个格子的机器人数量等于多少呢?

输入描述:
第一行两个整数 n m (1 <= n, m <= 3 * 10^5),表示地图大小。
接下来 n 行,每行包含 m 个字符的字符串,表示每个格子滑行带的方向。

输出描述:
输出一行一个整数,表示第 10 时刻,地图上剩下机器人 A 的数量。

输入例子:
2 5
LRRLR
UULLR

输出例子:
6

#include <iostream>
#include <vector>using namespace std;
int dx[4] = {0, 0, -1, 1};
int dy[4] = {-1, 1, 0, 0};
char dirs[4] = {'L', 'R', 'U', 'D'};int main() {int n, m;cin >> n >> m;vector<vector<char>> g(n, vector<char>(m));for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {cin >> g[i][j];}}vector<vector<long long>> cnt(n, vector<long long>(m, 1));for (long long t = 0; t < n + m; t++) {vector<vector<long long>> newCnt(n, vector<long long>(m, 0));for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {if (cnt[i][j] > 0) {char d = g[i][j];int idx = -1;for (int k = 0; k < 4; k++) {if (dirs[k] == d) {idx = k;break;}}int ni = i + dx[idx];int nj = j + dy[idx];if (ni >= 0 && ni < n && nj >= 0 && nj < m) {newCnt[ni][nj] += cnt[i][j];}}}}cnt = newCnt;}long long res = 0;for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {res += cnt[i][j];}}cout << res << endl;return 0;
}

http://www.ppmy.cn/embedded/110369.html

相关文章

flutter图片资源加载处理

每次都忘了配置这个插件的流程&#xff0c;在此记录一下&#xff1a; 说明&#xff1a;Flutter图片资源路径生成小工具&#xff0c;把assets目录下图片路径归纳转换到R文件. 使用: 如 assets/images/pay/pay_cash.png import ‘r.dart’;\ …\ Image.asset(R.pay_cash) 先安装插…

【计算机视觉前沿研究 热点 顶会】ECCV 2024中目标检测有关的论文

整值训练和尖峰驱动推理脉冲神经网络用于高性能和节能的目标检测 与人工神经网络(ANN)相比&#xff0c;脑激励的脉冲神经网络(SNN)具有生物合理性和低功耗的优势。由于 SNN 的性能较差&#xff0c;目前的应用仅限于简单的分类任务。在这项工作中&#xff0c;我们专注于弥合人工…

[Git使用] 实战技巧

文章目录 1. 理解分叉点2. Rebase3. FixUp4. Revert5. Squash Commit (仅限于本地操作)5. Git Fetch6. Cheery-Pick1. 理解分叉点 合并分支的时候会产生分叉点 比如: 仓库有dev和feature两个分支; 操作1:dev远程新建一个文件操作2:feature提交第一次操作3:远程执行把fetur…

【深度学习】softmax 回归的从零开始实现与简洁实现

前言 小时候听过一个小孩练琴的故事&#xff0c;老师让他先弹最简单的第一小节&#xff0c;小孩练了两天后弹不出。接着&#xff0c;老师让他直接去练更难的第二小节&#xff0c;小孩练习了几天后还是弹不出&#xff0c;开始感觉到挫败和烦躁了。 小孩以为老师之后会让他从简…

U盘文件及文件夹带锁修复

磁盘管理修复工具Disks磁盘管理–针对U盘文件及文件夹带锁修复 本文章只针对统信系统 文章目录 功能概述一、安装工具二、数据备份三、检查文件系统1. 通过启动栏中的“磁盘”或者桌面的“磁盘”启动文件来启动应用:2. 选择U盘设备3. 点击“检查文件系统”按钮(如果无此按钮…

springboot项目编写发送异常日志到企微工具包

1.创建基础Bean public final class ThreadFactory implements java.util.concurrent.ThreadFactory {private static final AtomicInteger poolNumber new AtomicInteger(1);private final ThreadGroup group;private final AtomicInteger threadNumber new AtomicInteger(1…

JS_变量

二、JS的变量 JS中的变量具有如下特征 1 弱类型变量,可以统一声明成var 2 var声明的变量可以再次声明 3 变量可以使用不同的数据类型多次赋值 4 JS的语句可以以; 结尾,也可以不用;结尾 5 变量标识符严格区分大小写 6 标识符的命名规则参照JAVA 7 如果使用了 一个没有声明的变量…

【深度强化学习】(1) DQN 模型解析,附Pytorch完整代码

大家好&#xff0c;今天和各位讲解一下深度强化学习中的基础模型 DQN&#xff0c;配合 OpenAI 的 gym 环境&#xff0c;训练模型完成一个小游戏&#xff0c;完整代码可以从我的 GitHub 中获得&#xff1a; https://github.com/LiSir-HIT/Reinforcement-Learning/tree/main/Mod…