T292114 [传智杯 #5 练习赛] 清洁工

news2025/6/30 8:39:07

题目描述

有一个 n\times nn×n 的地块,一个连续 ii 分钟没人经过的地面在第 ii 分钟会落上 ii 个单位的灰,有人经过时不会落灰但灰也不会清零,在人走后第一分钟又会落上一个单位的灰,以此类推。你在这个 n\times nn×n 的范围内移动,你的移动轨迹可以描述为一个由 \text{N,S,W,E}N,S,W,E 组成的字符串,每个字母分别表示上、下、左、右。这个人一开始在点 (x,y)(x,y),每一分钟移动一步。

求最后每一个位置上落下的灰的量。

本题中的上和右分别表示 yy 轴正方向和 xx 轴正方向。保证你没有超过移动的范围。

输入格式

第一行四个正整数 n,m,x,yn,m,x,y,含义如题面所示,其中 x,yx,y 表示横纵坐标,不是数组下标。
第二行一个长度为 mm 的字符串,表示你的移动序列。

输出格式

共nn 行,每行 nn 个数,第 ii 行的第 jj 个数表示坐标 (j,n-i+1)(j,n−i+1) 上的灰的数量

输入输出样例

输入 #1复制

5 4 1 1
NENW

输出 #1复制

10 10 10 10 10 
10 10 10 10 10 
10 6 10 10 10 
4 4 10 10 10 
6 10 10 10 10 

输入 #2复制

7 14 1 1
NENENENENESSSS

输出 #2复制

105 105 105 105 105 105 105 
105 105 105 105 55 61 105 
105 105 105 49 51 69 105 
105 105 51 49 105 79 105 
105 61 55 105 105 91 105 
79 69 105 105 105 105 105 
91 105 105 105 105 105 105 

输入 #3复制

10 70 2 2
NWSNSNNNSNNSSNNSENNNNEESNWSESESSWENNSEWESWWWESEEESENNSENWNESNWSNNNEESS

输出 #3复制

2485 2485 2485 2485 2485 2485 2485 2485 2485 2485 
2485 1407 1205 1267 2485 2485 2485 2485 2485 2485 
2485 1435 1281 1167 2485 2485 2485 2217 2281 2347 
2485 1465 2485 1255 1041 2485 2485 2155 2485 2415 
1557 1497 2485 2485 969 1177 2485 1733 1807 2485 
1471 1531 1315 907 935 1267 2485 1473 1647 2485 
1631 2485 2485 1357 1381 1407 1435 1499 1645 2485 
2021 2347 2485 2485 2485 2485 1465 1497 2485 2485 
2087 2415 2485 2485 2485 2485 2485 2485 2485 2485 
2485 2485 2485 2485 2485 2485 2485 2485 2485 2485 

输入 #4复制

5 4 2 1
NENW

输出 #4复制

10 10 10 10 10 
10 10 10 10 10 
10 10 6 10 10 
10 4 4 10 10 
10 6 10 10 10 

说明/提示

本题 y 轴朝上,x 轴朝右,样例输出中的左下角表示 (1,1)(1,1),第一分钟你在初始点处,第二分钟移动到相应的位置,第 m+1m+1 分钟移动到最后一个点,但是总共只有 mm 分钟,因此最后一个点不受移动的影响


样例 1 解释:

你的移动路径为 (1,1)\rightarrow(1,2)\rightarrow(2,2)\rightarrow(2,3)\rightarrow(1,3)(1,1)→(1,2)→(2,2)→(2,3)→(1,3),共 44 分钟。

对于第 11 分钟,(1,1)(1,1) 灰层数不变,其余点被落下了 11 层灰。

对于第 22 分钟,(1,2)(1,2) 灰层数不变,(1,1)(1,1) 被落下了 11 层灰,其余点落下 22 层灰。

对于第 33 分钟,(2,2)(2,2) 灰层数不变,(1,1)(1,1) 落下 22 层灰,(1,2)(1,2) 落下 11 层灰,其余点落下 33 层灰。

对于第 44 分钟,(2,3)(2,3) 灰层数不变,(1,1)(1,1) 落下 33 层灰,(1,2)(1,2) 落下 22 层灰,(2,2)(2,2) 落下 11 层灰,其余点落下 44 层灰。

注意最后你移动到了 (1,3)(1,3),但是时间只有 44 分钟,所以实际上不会对 (1,3)(1,3) 造成影响。初始点不一定在 (1,1)(1,1)。

1\le n\leq 50,1\leq m\le 10001≤n≤50,1≤m≤1000。

#include <iostream>
#include <algorithm>
#include <climits>
#include <stdio.h>
#include <cstdlib>
#include <memory.h>
#include <queue>
#include <stack>

using namespace std;



int main()
{
    int maze[55][55]; //地图灰尘
    int time[55][55] = {0}; //地图连续没人时间
    //上下左右
    int xMove[4] = {0, 0, -1, 1};
    int yMove[4] = {1, -1, 0, 0};
    int n,m,x,y; //n大小的地图,移动m次,初始位置在xy
    cin >> n >> m >> x >> y;
    char s[m+10];
    for(int i = 0; i < m; i++)
    {
        cin >> s[i];
    }
    for(int i = 0; i < m; i++)
    {
        for(int j = 1; j <= n; j++)
        {
            for(int k = 1; k <= n; k++)
            {
                if(j == x && k == y) //是站着的那个点就时间清零
                {
                    time[j][k] = 0;
                }
                else                //不是便时间增加
                    time[j][k]++;
            }
        }
        for(int j = 1; j <= n; j++)
        {
            for(int k = 1; k <= n; k++)
            {
                maze[j][k] += time[j][k];  //本身的灰加上持续没人的时间
            }
        }

        if(s[i] == 'N')
        {
            x = x+xMove[0];
            y = y+yMove[0];
        }
        else if(s[i] == 'S')
        {
            x += xMove[1];
            y += yMove[1];
        }
        else if(s[i] == 'W')
        {
            x += xMove[2];
            y += yMove[2];
        }
        else if(s[i] == 'E')
        {
            x += xMove[3];
            y += yMove[3];
        }

    }
    for(int j = n; j >= 1; j--)
    {
        for(int k = 1; k <= n; k++)
        {
            cout << maze[k][j]  << ' ';  //本身的灰加上持续没人的时间
        }
        cout << endl;
    }
    return 0;
}



不知道为啥,后两个测试点就是过不了,唉。有大佬知道为啥吗?

 

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

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

相关文章

深度可分离卷积神经网络与卷积神经网络

在学习语义分割过程中&#xff0c;接触到了深度可分离卷积神经网络&#xff0c;其是对卷积神经网络在运算速度上的改进&#xff0c;具体差别如下&#xff1a; 一些轻量级的网络&#xff0c;如mobilenet中&#xff0c;会有深度可分离卷积depthwise separable convolution&#…

Xamarin.Andorid实现界面弹框

目录1、使用系统自带的样式1.1 具体实现1.2 效果2、自定义样式的实现2.1 预期效果2.2 具体实现2.3 相关知识3 代码下载4、参考在App的实际使用中&#xff0c;一定会出现弹框选择的情况。如图所示&#xff1a; 因此非常有必须学会及使用弹框的功能&#xff0c;因此本次学习Xama…

miui刷机完整教程

风险提示&#xff1a;刷机有可能损害手机&#xff0c;本作者不承担因为使用本方法刷机引起的任何问题&#xff0c;请谨慎刷机。 1.选择[刷机包](https://web.vip.miui.com/page/info/mio/mio/detail?postId37093637&app_versiondev.20051) 2.解BL锁 浏览器打开http://www…

SSM整合(二)

SSM框架整合之mybatis查询的两个例子 1 准备工作 1.1 创建查询工作所需要的实体类Emp package com.entity; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import tk.mybatis.mapper.annotation.KeySql; import javax.persisten…

代码随想录算法训练营第四天|24、19、面试题 02.07、142、92(寄了)

Leecode24. 两两交换链表中的节点 链接&#xff1a;https://leetcode.cn/problems/swap-nodes-in-pairs/ 其实这道题的思路和203比较相似&#xff0c;因为若是不设置虚拟头结点的话&#xff0c;处理头结点的方式和处理非头结点的方式会不一样&#xff0c;所以还是设置虚拟头结…

LeetCode力扣刷题——指针三剑客之三:图

图 一、数据结构介绍 作为指针三剑客之三&#xff0c;图是树的升级版。图通常分为有向&#xff08;directed&#xff09;或无向&#xff08;undirected&#xff09;&#xff0c;有 循环&#xff08;cyclic&#xff09;或无循环&#xff08;acyclic&#xff09;&#xff0c;所有…

Golang入门笔记(15)—— 数组和切片

编程的世界中&#xff0c;或许是因为一次一次的定义变量&#xff0c;维护管理起来都太费劲了&#xff0c;所以推出了数组&#xff0c;将数据用数组的形式管理起来。 Go的数组和Java的实现机制是不同的&#xff0c;Go语言的数组是作为基本数据类型存在的。所以数组是开辟在栈帧中…

Golang Web开发一键生成各层级模板代码

文章目录go_project_quickstart快速开始要求安装项目实现架构设计代码逻辑统一的调用逻辑代码复用每次写web项目&#xff0c;模板都是统一的&#xff0c;每次都要写大量冗余的代码会很烦&#xff0c;在Java中有很多逆向生成的工具&#xff0c;而Go语言我找了很久&#xff0c;也…

手把手搭建springboot项目,并测试springDataJPA

这篇文章记录了搭建springboot项目并测试springDataJPA的过程&#xff0c;接下来一起看看吧。 1.访问阿里云java脚手架网站 点击访问 2.按照下图勾选并获取代码 3.将获取到的代码解压到idea工作空间。 下图的JPAdemo就是我的项目 4.打开idea&#xff0c;导入项目 5.在pom…

【Redis】| 01 | Redis 可视化工具RedisInsight

目录1 RedisInsight 简介2 RedisInsight 安装2.1 安装2.1.1 软件安装2.1.1.1 下载 RedisInsight 软件包2.1.1.2 安装命令2.1.1.3 配置环境变量2.1.1.4 启动服务2.1.2 Kubernetes 安装2.1.2.1 创建 RedisInsight 的 yaml 文件2.1.2.2 启动3.RedisInsight 使用3.1 安装redis3.1.1…

Jacobi迭代的MPI进阶——计算通信重叠和虚拟进程的使用

1:条形分割的几种策略 这里先放Makefile和run.slurm Makefile CC = mpicc FLAGS = -O3 -Wall OBJ = *.o EXE = hang hangstartall Ihang xunihang qipan srqipan Isrqipan qipanendall: ${EXE}hang: hang.c $(CC) -o $@ $^ $(FLAGS)

信息安全结业复习题(选择 + 填空 + 简答 + 计算 + 设计 )含历年考题

这里写目录标题客观题知识点简答题计算题设计题客观题知识点 考过填空 密码学是保障信息安全的核心、信息安全是密码学研究和发展的目标 保证数字信息机密性的最有效方法是使用密码算法对其进行加密&#xff08;对称和非对称&#xff09; 保证信息完整性的有效方法是利用hash…

SQL Server全套教程(基于SQL语句----续更中)

SQL Server全套教程全程干货1. 数据库的基础操作1.1.0 创建数据库1.1.1 查看及修改数据库1.1.3 分离、附加和删除数据库2.数据库表的相关操作2.1.0 常用数据类型2.1.1 表结构的创建2.1.2 表结构的查看及修改1. 数据库的基础操作 1.1.0 创建数据库 数据库创建语法 -- 创建数据…

MicroPython-On-ESP8266——8x8LED点阵模块(2)使用74HC595驱动

MicroPython-On-ESP8266——8x8LED点阵模块&#xff08;2&#xff09;使用74HC595驱动 1. 使用74HC595驱动的原理 1.1. 基础回顾 上篇我们学习了8x8LED点阵屏的电路基础知识和驱动的原理&#xff0c;见 8x8LED点阵模块&#xff08;1&#xff09;驱动原理 里面也提到了&…

基于ssm+Javaweb的OA小型企业资源管理系统-计算机毕业设计

小型OA企业资源管理系统基于SSM(SpringSpringMVCMyBatis)框架,适用于毕业设计&#xff0c;采用javaweb,基于B/S模式,Myeclipse或者eclipse idea为开发工具,mysql数据库,主要包括登录模块、人事管理模块、公告管理模块、产品管理模块、和退出模块等多个模块。 本系统主要包含了…

MySQL高级篇知识点——主从复制

目录1.主从复制概述1.1.如何提升数据库并发能力1.2.主从复制的作用2.主从复制的原理2.1.原理剖析2.2.复制的基本原则3.一主一从架构搭建3.1.准备工作3.2.主机配置文件3.3.从机配置文件3.4.主机&#xff1a;建立账户并授权3.5.从机&#xff1a;配置需要复制的主机3.6.测试3.7.停…

tensorflow2.x --------------------DenseNet-----------------------------

用tensorflow2.4实现了DenseNet-121,训练基于ImageNet图像数据集&#xff0c;图片输入大小为 224x224 。网络结构采用包含4个DenseBlock的DenseNet-BC&#xff0c;每个DenseNet-BC由若干个 BNReLU1x1 ConvBNReLU3x3 Conv&#xff08;Dense_layer)且每个DenseBlock的特征图大小分…

听我劝,自学游戏建模真的很难

我的个人建议一直是偏向不要自学建模的&#xff08;特别是零基础&#x1f923;&#xff09;&#xff0c;学习3D游戏建模除了单纯需要为爱发电还需要能够自行✅掌握软件操作技巧和✅纠错改正&#xff0c;后者都是自学非常❌难做到的&#x1f62d; 除此之外&#xff0c;还有以下…

详解Unity中的Nav Mesh新特性|导航寻路系统 (二)

前言 第一篇我们简要概述了新版NavMesh的一些新增功能&#xff0c;以及旧版的对比。本篇我们来讲一讲NavMeshSurface、NavMeshLink这两个组件的参数以及如何应用&#xff0c;接下来就进入正题吧。 本系列提要 Unity新版NavMesh专题博客共分成三篇来讲解&#xff1a; 【本篇为…

Golang入门笔记(最后一章 17 封版)—— 映射map

映射 (map) 作为一个常用的类型&#xff0c;Go语言已为我们开发者内置了map类型。 基本语法&#xff1a; var 变量名 map [keyT类型] valueT类型 这里T就是一个类型代表&#xff08;我这么写&#xff0c;有点受到了Java的泛型影响&#xff09;&#xff0c;key的类型通常为str…