蓝桥杯官网练习题(兰顿蚂蚁)

2023-10-26

题目描述

兰顿蚂蚁,是于 1986 年,由克里斯·兰顿提出来的,属于细胞自动机的一种。

平面上的正方形格子被填上黑色或白色。在其中一格正方形内有一只"蚂蚁"。

蚂蚁的头部朝向为:上下左右其中一方。

蚂蚁的移动规则十分简单:

若蚂蚁在黑格,右转 90 度,将该格改为白格,并向前移一格;

若蚂蚁在白格,左转 90 度,将该格改为黑格,并向前移一格。

规则虽然简单,蚂蚁的行为却十分复杂。刚刚开始时留下的路线都会有接近对称,像是会重复,但不论起始状态如何,蚂蚁经过漫长的混乱活动后,会开辟出一条规则的"高速公路"。

蚂蚁的路线是很难事先预测的。

你的任务是根据初始状态,用计算机模拟兰顿蚂蚁在第 n 步行走后所处的位置。

输入描述

输入数据的第一行是 m,n 两个整数 (3<m,n<100),表示正方形格子的行数和列数。

接下来是 m 行数据。

每行数据为 n 个被空格分开的数字。0 表示白格,1 表示黑格。

接下来是一行数据:x,y,s,k, 其中 x,y 为整数,表示蚂蚁所在行号和列号(行号从上到下增长,列号从左到右增长,都是从 0 开始编号)。�s 是一个大写字母,表示蚂蚁头的朝向,我们约定:上下左右分别用:U D L R 表示。k 表示蚂蚁走的步数。

输出描述

输出数据为两个空格分开的整数 �,�p,q, 分别表示蚂蚁在 �k 步后,所处格子的行号和列号。

输入输出样例

示例

输入

5 6
0 0 0 0 0 0
0 0 0 0 0 0
0 0 1 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
2 3 L 5

输出

1 3

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 256M

U:1,L:2,D:3,R:4(默认向左90°旋转)

格子为白色时:向左90°旋转:U:1→L:2,L:2→D:3,D:3→R:4,R:4→U:1

格子为黑色时:向右90°旋转:U:1→R:4,R:4→D:3,D:3→L:2,L:2→U:1

import java.util.*;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int t=0;
        int m=scan.nextInt();
        int n=scan.nextInt();
        int[][] a=new int[m][n];
        for(int i=0;i<m;i++){
          for(int j=0;j<n;j++){
            a[i][j]=scan.nextInt();
          }
        }
        int x=scan.nextInt();
        int y=scan.nextInt();
        String s=scan.next();
        int k=scan.nextInt();
        int h=get(s);
        while(true){
          if(a[x][y]==0){
            h=h%4+1;
            a[x][y]=1;
          }
          else{
            h--;
            if(h==0){
              h=4;
            }
            a[x][y]=0;
          }
          if(h==1){x--;}
          if(h==2){y--;}
          if(h==3){x++;}
          if(h==4){y++;}
          t++;
          if(t==k){
            System.out.printf(x+" "+y);
            break;
          }
        }
    }
    public static int get(String s){
      if(s.equals("U")){
        return 1;
      }
      if(s.equals("L")){
        return 2;
      }
      if(s.equals("D")){
        return 3;
      }
      if(s.equals("R")){
        return 4;
      }
      return 0;
    }
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

蓝桥杯官网练习题(兰顿蚂蚁) 的相关文章

随机推荐

  • 特别篇:input小结

    input 我们日常中在使用Python时都会使用input 在控制台进行输出 但是不知道大家发现没有 因为Python是一种动态语言 所以不会像Java中的Scanner类 在代码中可以控制输入的类型 所以当我们输入数字时 底层也会把我们
  • 程序流程图画法复习-三种循环语句(for,while,do while)

    程序流程图画法复习 1 程序流程图的作用 程序流程图的作用程序流程图的作用程序流程图的作用 程序流程图是人们对解决问题的方法 思路或算法的一种描述 流程图的优点 a 采用简单规范的符号 画法简单 b 结构清晰 逻辑性强 c 便于描述 容易理
  • HTTP请求行详解

    目录 一 认识URL 二 认识方法 2 1 GET方法 2 2 POST方法 2 3 其他方法 请求行也就是HTTP请求的第一行 接下来将对第一行内容进行详细解释 一 认识URL 平时我们俗称的 网址 其实就是说的 URL Uniform
  • 从0开始学PyTorch(一):线性回归、Softmax与分类模型、多层感知机

    文章目录 线性回归 模型 数据集 损失函数 优化函数 随机梯度下降 Softmax与分类感知机 softmax的基本概念 多层感知机 多层感知机的基本知识 隐藏层 表达公式 激活函数 线性回归 线性回归的基本要素 模型 为了简单起见 这里我
  • java文件下载接口,含泪整理面经

    Java如何入门 1 建立好开发环境 首先建立好开发环境非常重要 工欲善其事 必先利其器 做任何开发 首先就是要把这个环境准备好 之后就可以去做各种尝试 尝试过程中就能逐渐建立信心 初学者往往在环境配置中被各种预想不到的问题弄得很沮丧 这里
  • Python工业项目实战 04:数仓维度层DWS层构建

    知识点01 课程回顾 ODS层与DWD层的功能与区别是什么 ODS 原始数据层 存储格式 AVRO 数据内容 基本与原始数据是一致的 DWD 明细数据层 存储格式 Orc 数据内容 基于与ODS层是一致的 ODS层的需求是什么 自动化建库建
  • php怎么判断密码是否达标,php中简单的密码强中弱判断,php密码验证规则

    密码种类 1 小写字母 2 大写字母 3 数字 4 特殊符号 弱 1 中 2 强 3 或 4 长度 6 16个字符 区分大小写 1 长度判断 pwd len strlen password if pwd len gt 16 pwd len
  • 【华为OD机试】仿 LISP 运算【2023 B卷

    华为OD机试 真题 点这里 华为OD机试 真题考点分类 点这里 题目描述 LISP 语言唯一的语法就是括号要配对 形如 OP P1 P2 括号内元素由单个空格分割 其中第一个元素 OP 为操作符 后续元素均为其参数 参数个数取决于操作符类型
  • 百度语音合成精简版

    我参照文档合成的源码下载 https download csdn net download qq 31939617 10388588 下载 文档 Android TTS SDK 集成进入helloworld 项目 一 简介 本文针对遇见集成
  • io流读写文件(文件内容修改)

    package cn sos psasps import java io BufferedReader import java io BufferedWriter import java io FileReader import java
  • Git第十三讲 Git重置和回滚更改

    在使用Git时 我们有时可能会犯错或者需要撤销之前的提交或更改 Git提供了一些强大的命令来重置和回滚更改 帮助我们管理项目的版本控制 本文将介绍如何使用Git进行重置和回滚操作 重置到指定提交 重置 Reset 命令允许我们将分支的指针移
  • tar 打包压缩命令

    tar 命令用于文件的打包或压缩 是最为常用的打包压缩命令 其语法格式如下 tar 选项 文件名 tar gz 源文件 tar czvf xxx tar gz source file tar czvf 包名 tar gz 源文件 以tar
  • 【以太坊系列-005】使用solc编译solidity智能合约,并生产web3deploy格式的代码

    说明 本文主要介绍 只通过solc来进行智能合约的部署 更简单的方式是通过remix直接生成 该场景是用于用户自己修改了solc编译器 remix无法使用的情况 1 代码结构 cat counter sol pragma solidity
  • SPP连接流程

    1 SDP服务注册 Server Channel即RFCOMM Server Channel 表示上层profile的rfcomm channel Central设备会使用SDP查询SPP的Server Channel 在后面使用RFCOM
  • C++ — 类型萃取

    类型萃取 在编程中我们可能时常会听到类型萃取这个高大上的 学术名词 我们今天来探究一下这个高大上的学术名词 到底是何方神圣 先看看官方的解释类型萃取使用模板技术来萃取类型 包含自定义类型和内置类型 的某些特 性 用以判断该类型是否含有某些特
  • Coinbase 研究:Web3 开发者堆栈指南

    原文标题 A simple guide to the web3 developer stack 撰文 Jonathan King Connor Dempsey Hoolie Tejwani 编译 胡韬 链捕手 尽管比特币和以太坊的兴起 以及
  • 电力识读图解(电力系统、电力网、电力系统电路图)

    一 电力系统和电力网 世界上大部分国家的动力资源和电力负荷中心分布是不一致的 如水力资源都是集中在江河流域水位落差较大的地方 燃料资源集中在煤 石油 天燃气的矿区 大电力负荷中心则多集中在工业区和大城市 因而发电厂和负荷中心往往相隔很远的距
  • 岁月划过生命线(2016 年终总结 -季度之星)

    岁月划过生命线 2016 年终总结 季度之星 标签 coder 年假结束 明天就要回到杭州 回到我fighting的战场 回首过去的2016 放纵了许多 但也收获了很多 n个项目 n个框架 第一个季度之星 头像第一次登上CSDN以及第一个年
  • 【C++笔记】OpenCV图像Mat格式转换为QT中QImage并显示zai Qlabel上

    Mat rgb QImage imgGray img if imgGray channels 1 imgGray img QImage const unsigned char imgGray data imgGray cols imgGra
  • 蓝桥杯官网练习题(兰顿蚂蚁)

    题目描述 兰顿蚂蚁 是于 1986 年 由克里斯 兰顿提出来的 属于细胞自动机的一种 平面上的正方形格子被填上黑色或白色 在其中一格正方形内有一只 蚂蚁 蚂蚁的头部朝向为 上下左右其中一方 蚂蚁的移动规则十分简单 若蚂蚁在黑格 右转 90