兰顿蚂蚁 java模拟
问题描述
兰顿蚂蚁,是于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
import java.util.*;
public class Main {static int []dx = {-1,0,1,0};static int []dy = {0,1,0,-1};static char[]d = {'U','R','D','L'}; static Map<Character,Integer> map = new HashMap<>();static int [][]g = new int [105][105];public static void main(String[] args) {Scanner sc = new Scanner(System.in);map.put('U',0);map.put('R',1);map.put('D',2);map.put('L',3);int n = sc.nextInt();int m = sc.nextInt();for(int i = 0;i < n;i ++) {for(int j = 0;j < m;j ++) {g[i][j] = sc.nextInt();}}int x = sc.nextInt();int y = sc.nextInt();char dir = sc.next().charAt(0);int k = sc.nextInt();for(int i = 1;i <= k;i ++) {if(g[x][y] == 1) { //黑格int p = (map.get(dir) + 1) % 4; //右转90dir = d[p];g[x][y] = 0;}else { //白格int p = (map.get(dir) + 3) % 4; //左转90dir = d[p]; g[x][y] = 1;}int idx = map.get(dir);x += dx[idx];y += dy[idx];}System.out.println(x+" "+y);}
}
兰顿蚂蚁 java模拟相关推荐
- LQ0213 兰顿蚂蚁【模拟】
题目来源:蓝桥杯2014初赛 Java A组H题 题目描述 兰顿蚂蚁,是于 1986 年,由克里斯·兰顿提出来的,属于细胞自动机的一种. 平面上的正方形格子被填上黑色或白色.在其中一格正方形内有一只& ...
- 兰顿蚂蚁 java源代码_兰顿蚂蚁-Java
兰顿蚂蚁,是于1986年,由克里斯·兰顿提出来的,属于细胞自动机的一种. 平面上的正方形格子被填上黑色或白色.在其中一格正方形内有一只"蚂蚁". 蚂蚁的头部朝向为:上下左右其中一方 ...
- 蓝桥杯 兰顿蚂蚁(模拟)
历届试题 兰顿蚂蚁 时间限制:1.0s 内存限制:256.0MB 问题描写叙述 兰顿蚂蚁.是于1986年,由克里斯·兰顿提出来的,属于细胞自己主动机的一种. 平面上的正方形格子被填上黑色或白色 ...
- [蓝桥杯][2014年第五届真题]兰顿蚂蚁(模拟)
题目描述 兰顿蚂蚁,是于1986年,由克里斯·兰顿提出来的,属于细胞自动机的一种. 平面上的正方形格子被填上黑色或白色.在其中一格正方形内有一只"蚂蚁". 蚂蚁的头部朝向为:上下左 ...
- 兰顿蚂蚁 蓝桥 模拟
兰顿蚂蚁 [2014年第五届真题] 链接: link. 时间限制: 1Sec 内存限制: 128MB 题目描述 兰顿蚂蚁,是于1986年,由克里斯·兰顿提出来的,属于细胞自动机的一种. 平面上的正方形 ...
- 兰顿蚂蚁 java源代码_兰顿蚂蚁 (Java代码)41行代码
解题思路: 注意事项: 参考代码:import java.util.Scanner; public class 蓝盾蚂蚁 { public static void main(String[] args ...
- 蓝桥杯 兰顿蚂蚁【模拟】
题目链接 解题思路 这就是一道纯模拟题,主要就是根据题意写出蚂蚁在白格和黑格中不同的变化方式即可. 代码部分 #include <iostream> #include <stdio. ...
- 蓝桥杯-兰顿蚂蚁 (模拟)
题目大意:根据题中所规定的方法,求出一定步数后,蚂蚁的位置 题目分析:本题属于常规的模拟题,就是只要根据题意把蚂蚁每步的移动方向,改变方格的颜色模拟出来即可. 我是将四个方向用整数表示,便于后期左转和 ...
- java兰顿蚂蚁解题思路_程序员面试金典 - 面试题 16.22. 兰顿蚂蚁(deque模拟)
1. 题目 一只蚂蚁坐在由白色和黑色方格构成的无限网格上. 开始时,网格全白,蚂蚁面向右侧. 每行走一步,蚂蚁执行以下操作. (1) 如果在白色方格上,则翻转方格的颜色,向右(顺时针)转 90 度,并 ...
最新文章
- Selenium3自动化测试——22.使用DDT运行同一测试用例
- 配置Exchange 2010 服务器(二)Exchange2010证书配置
- Java 调用存储过程 返回结果集
- phpStudy mysql升级至5.7
- 如何成为一个卓越的程序员
- 编程范式,程序员的编程世界观(转)
- 表格占据整个页面_excel转换为pdf6个示例,在多个工作表、表格和空白页中进行选择...
- pcfg 自然语言处理_自然语言处理导航
- JQuery控制只能输入带二位小数的数字
- react学习笔记(9)表单控件
- NSNumber的使用
- oppo鸿蒙系统刷机包下载,OPPO A59st官方固件rom刷机包_OPPO A59st系统升级包下载
- 天线效应的原理及消除【转帖】
- 如何提高自制力?自制力差怎么办?
- 风雨30年,电子表格惊人跨越,excel用户:表格都能生成软件了
- Ubuntu-18.04安装
- 仿高德地图首页效果,简单代码实现
- MATLAB激活了还需要激活
- 虚拟机VMware上安装Fedora
- 【学习笔记】面向计算机科学的数理逻辑:系统建模与推理 (C1命题逻辑)
热门文章
- javascript选项卡嵌套的实现
- html5 3d在线网页,HTML5网页动画 3D旋转展示
- GTA IV免DVD破解补丁无法运行的解决办法
- linux制作多系统启动盘制作工具,制作U盘多系统(老毛桃WinPE,Ubuntu,MaxDOS,CDlinux,Parted Magic Linux)引导工具...
- Windows Phone8开发工具包简述(转载)
- 灰度图(IR 图)转成 RGB 图预览,画面出现光斑/黄斑问题解决
- 如何将svg转换为xaml
- vue element-ui引入第三方图标
- web服务器和应用服务器的区别与分析
- linux环境实现定时器----- itimerval实现