问题描述

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

平面上的正方形格子被填上黑色或白色。在其中一格正方形内有一只“蚂蚁”。
蚂蚁的头部朝向为:上下左右其中一方。

蚂蚁的移动规则十分简单:
若蚂蚁在黑格,右转90度,将该格改为白格,并向前移一格;
若蚂蚁在白格,左转90度,将该格改为黑格,并向前移一格。

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

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

你的任务是根据初始状态,用计算机模拟兰顿蚂蚁在第n步行走后所处的位置。
输入格式
输入数据的第一行是 m n 两个整数(3 < m, n < 100),表示正方形格子的行数和列数。
接下来是 m 行数据。
每行数据为 n 个被空格分开的数字。0 表示白格,1 表示黑格。

接下来是一行数据:x y s k, 其中x y为整数,表示蚂蚁所在行号和列号(行号从上到下增长,列号从左到右增长,都是从0开始编号)。s 是一个大写字母,表示蚂蚁头的朝向,我们约定:上下左右分别用:UDLR表示。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
样例输入
3 3
0 0 0
1 1 1
1 1 1
1 1 U 6
样例输出
0 0

package prev33;import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);int m = in.nextInt();int n = in.nextInt();final int BLACK = 1;final int WHITE = 0;int[][] maxtrix = new int[m][n];for (int i = 0; i < m; i++) {for (int j = 0; j < n; j++) {maxtrix[i][j] = in.nextInt();}}int x = in.nextInt();int y = in.nextInt();String s = in.next();int k = in.nextInt();in.close();for (int i = 0; i < k; i++) {if (s.equals("U")) {if (maxtrix[x][y] == BLACK) {s = "R";maxtrix[x][y] = WHITE;y++;} else if (maxtrix[x][y] == WHITE) {s = "L";maxtrix[x][y] = BLACK;y--;} else {System.out.println("Are your square crack?");}} else if (s.equals("D")) {if (maxtrix[x][y] == BLACK) {s = "L";maxtrix[x][y] = WHITE;y--;} else if (maxtrix[x][y] == WHITE) {s = "R";maxtrix[x][y] = BLACK;y++;} else {System.out.println("Are your square crack?");}} else if (s.equals("L")) {if (maxtrix[x][y] == BLACK) {s = "U";maxtrix[x][y] = WHITE;x--;} else if (maxtrix[x][y] == WHITE) {s = "D";maxtrix[x][y] = BLACK;x++;} else {System.out.println("Are your square crack?");}} else if (s.equals("R")) {if (maxtrix[x][y] == BLACK) {s = "D";maxtrix[x][y] = WHITE;x++;} else if (maxtrix[x][y] == WHITE) {s = "U";maxtrix[x][y] = BLACK;x--;} else {System.out.println("Are your square crack?");}} else {System.out.println("Your direction have some errors.");}//            print(maxtrix, m, n);}System.out.println(x + " " + y);}public static void print(int[][] maxtrix, int m, int n) {for (int i = 0; i < m; i++) {for (int j = 0; j < n; j++) {System.out.print(maxtrix[i][j] + " ");}System.out.println();}}
}

[Java] 蓝桥杯PREV-33 历届试题 兰顿蚂蚁相关推荐

  1. Java实现蓝桥杯历届试题兰顿蚂蚁

    历届试题 兰顿蚂蚁 时间限制:1.0s 内存限制:256.0MB 提交此题 问题描述 兰顿蚂蚁,是于1986年,由克里斯·兰顿提出来的,属于细胞自动机的一种. 平面上的正方形格子被填上黑色或白色.在其 ...

  2. 历届试题 兰顿蚂蚁 (模拟)

    题目: 兰顿蚂蚁,是于1986年,由克里斯·兰顿提出来的,属于细胞自动机的一种. 平面上的正方形格子被填上黑色或白色.在其中一格正方形内有一只"蚂蚁". 蚂蚁的头部朝向为:上下左右 ...

  3. 【蓝桥杯】【python】兰顿蚂蚁

    思路,其实没什么思路,就是按照他说的进行代码描述,利用函数分别表述在黑块和白块时候的操作方法 然后将方位用1-4进行替代 其实我在数据的输入上出了一些问题,我整理在我另外一篇文章里面了 https:/ ...

  4. java兰顿蚂蚁解题思路_蓝桥试题-兰顿蚂蚁

    问题描述: 兰顿蚂蚁,是于1986年,由克里斯·兰顿提出来的,属于细胞自动机的一种. 平面上的正方形格子被填上黑色或白色.在其中一格正方形内有一只"蚂蚁". 蚂蚁的头部朝向为:上下 ...

  5. 蓝桥杯经典算法 不定方程解法 蓝桥杯练习系统 历届试题 买不到的数目

    蓝桥杯经典算法 第六讲 不定方程解法   蓝桥杯算法教学与培训_蓝桥杯经典算法 第六讲 不定方程解法 不定方程的一般解法   朴素算法 public static void main(String[] ...

  6. 蓝桥杯练习系统历届试题 翻硬币

    问题描述 小明正在玩一个"翻硬币"的游戏. 桌上放着排成一排的若干硬币.我们用 * 表示正面,用 o 表示反面(是小写字母,不是零). 比如,可能情形是:**oo***oooo 如 ...

  7. “蓝桥杯”练习系统——历届试题

    1. 核桃的数量(水题) 思路:求两个数的最大公约数可以用欧几里得算法(辗转相除法),即 a与b的最大公约数 等于 b与(a对b取余) 的最大公约数,当b等于0时,a与b的最大公约数是a.两个数的最小 ...

  8. 蓝桥杯 兰顿蚂蚁(模拟)

    历届试题 兰顿蚂蚁   时间限制:1.0s   内存限制:256.0MB 问题描写叙述 兰顿蚂蚁.是于1986年,由克里斯·兰顿提出来的,属于细胞自己主动机的一种. 平面上的正方形格子被填上黑色或白色 ...

  9. 历届试题 核桃的数量(3个数的最小公倍数),翻硬币(贪心),买不到的数目(在范围内暴力,找范围,最小公倍数是上界,最小的数是下界),兰顿蚂蚁(dfs,模拟)

    历届试题 核桃的数量 问题描述 小张是软件项目经理,他带领3个开发组.工期紧,今天都在加班呢.为鼓舞士气,小张打算给每个组发一袋核桃(据传言能补脑).他的要求是: 各组的核桃数量必须相同 各组内必须能 ...

最新文章

  1. windows下使用Jenkins搭建CI持续集成平台(版本源码管理使用SVN)
  2. 线程的创建开销大吗?线程创建开销包括哪些?线程池
  3. JavaSE基础知识(5)—面向对象(Object类)
  4. 权值线段树小结(hdu多校,普通平衡树,郁闷的出纳员)
  5. CSS 属性篇(七):Display属性
  6. ORA-01157 无法标识锁定数据文件的解决方法
  7. linux查看进程和终止进程
  8. Wireshark实战分析之IP协议(三)
  9. 软件测试之“支付功能”测试
  10. 2021年Flash被禁用后继续使用的方法
  11. 新倩女幽魂服务器维护,《倩女幽魂Online》更新公告(版本1.0.23)
  12. 有钱任性的农夫山泉,被迫踏上IPO?
  13. 外贸邮箱服务器设置,外贸邮客户端设置方法?
  14. 智能文档控制——文档的智能归档、捕获、索引、访问和协作
  15. Android连接网络打印机进行打印
  16. 计算机域名(domain name)
  17. ISO认证证书上常见的认可标志
  18. 安装卸载提示nsis error的解决方法
  19. 携程称将继续参与一嗨私有化 Ocean联合体有33.2%投票权
  20. 第五章 卡耐基驾驭竞争与合作 三 征服畏惧建立自信

热门文章

  1. Android快速批量打渠道包(AndroidManifestModifier)
  2. VS2010用Winform编写 Excel程序
  3. 浏览器同源策略,及跨域解决方案
  4. volatile双重锁实现单例
  5. T-SQL笔记7:临时表和表变量
  6. 一种新的页面导航方法
  7. Apache Log4j任意代码执行漏洞安全风险通告第三次更新
  8. 施耐德电气的 Modicon PLC 中被曝严重漏洞,已有缓解措施
  9. 详述 ISC BIND 服务器中的信息泄露漏洞
  10. FBI 和 NSA 披露俄罗斯国家黑客使用的 Linux 恶意软件