蓝桥试题-兰顿蚂蚁

硅谷探秘者 1684 0 0

问题描述:

1546092682161039083.png

兰顿蚂蚁,是于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.Scanner;

public class Main {
	public static int a[][];//代表正方形格子
	static int n,m;//格子的宽高
	static int p1,p2;//蚂蚁的位置
	static char f;//蚂蚁的方向
	static int k;//标记步数
	public static void main(String[] args) {
		Scanner s=new Scanner(System.in);
		n=s.nextInt();
		m=s.nextInt();
		a=new int[n][m];
		for(int i=0;i<n;i++){
			for(int j=0;j<m;j++){
				a[i][j]=s.nextInt();
			}
		}
		p1=s.nextInt();
		p2=s.nextInt();
		f=s.next().charAt(0);
		k=s.nextInt();
		int b=0;
		while(b<k){
			if(a[p1][p2]==1){//hei  右转90度,将该格改为白格,并向前移一格;
				a[p1][p2]=0;
				if(f=='U'){
					f='R';
					p2++;
				}else if(f=='R'){
					f='D';
					p1++;
				}else if(f=='D'){
					f='L';
					p2--;
				}else{
					f='U';
					p1--;
				}
			}else{//bai  左转90度,将该格改为黑格,并向前移一格。
				a[p1][p2]=1;
				if(f=='U'){
					f='L';
					p2--;
				}else if(f=='L'){
					f='D';
					p1++;
				}else if(f=='D'){
					f='R';
					p2++;
				}else{
					f='U';
					p1--;
				}
			}
			b++;
		}
		System.out.println(p1+" "+p2);
	}
}



评论区
请写下您的评论...
暂无评论...
猜你喜欢
blog
其他 1410 packagecom.dzqc.campus.controller;publicclassA{publicstaticAa=newA();publicstaticAa2=newA
框架 3152 1.浏览器请求浏览器向服务器请求时,服务器不会直接执行我们的类,而是到web.xml里寻找路径名①:第一步,浏览器输入访问路径后,携带了请求行,头,体②:第二步,根据访问路径找到已注册的servlet名称③:第三步,根据映射找到对应的servlet名(在xml里配置的)③:第四步,根据根据servlet名找到我们全限定类名,既我们自己写的类2.服务器创建对象①:服务器找到全限定类名后(xml配置)
其他 2820 1、五升壶装满;2、倒入六升壶(未满,内有5升);3、再把五升壶装满;4、倒入六升壶,六升壶满,五升壶剩4升;5、六升壶倒空,6、五升壶里剩余四升水倒入六升壶,此时六升壶内有四升水7、五升壶装满;8、倒入六升壶装满,此时五升壶内有三升水,完毕。
其他 4579 查询每门课程成绩都大于80分学生的学号数据库表studentnamescorecourseA85语文A75数学A82英语B75语文B89数学B79英语C90语文C100数学C100英语请写出每门课程都超过80分的那个人名字的SQL语句SQL1:selectnamefromtest.stugroupbynamehavingcount(score)=sum(casewhenscore80then1el
java javac 动态编译 1161 代码:importjava.io.UnsupportedEncodingException;importjava.lang.reflect.InvocationTargetException
java基础 1792 32个java面必考点
数据结构与算法 8389 1.问描述:问:上面有一个迷宫,灰色部分代表不能通过,白色部分代表可以通过,现在从a点出发,能否找到一条路径到达b点,如果能,输出此路径。下面采用探法求解,采用栈结构保存每一步的内容(包括坐标
html图片懒加载 1291 纯js实现图片懒加载lazyLoading.html测页面
归档
2018-11  12 2018-12  33 2019-01  28 2019-02  28 2019-03  32 2019-04  27 2019-05  33 2019-06  6 2019-07  12 2019-08  12 2019-09  21 2019-10  8 2019-11  15 2019-12  25 2020-01  9 2020-02  5 2020-03  16 2020-04  4 2020-06  1 2020-07  7 2020-08  13 2020-09  9 2020-10  5 2020-12  3 2021-01  1 2021-02  5 2021-03  7 2021-04  4 2021-05  4 2021-06  1 2021-07  7 2021-08  2 2021-09  8 2021-10  9 2021-11  16 2021-12  14 2022-01  7 2022-05  1 2022-08  3 2022-09  2 2022-10  2 2022-12  5 2023-01  3 2023-02  1 2023-03  4 2023-04  2 2023-06  3 2023-07  4 2023-08  1 2023-10  1 2024-02  1 2024-03  1 2024-04  1
标签
算法基础 linux 前端 c++ 数据结构 框架 数据库 计算机基础 储备知识 java基础 ASM 其他 深入理解java虚拟机 nginx git 消息中间件 搜索 maven redis docker dubbo vue 导入导出 软件使用 idea插件 协议 无聊的知识 jenkins springboot mqtt协议 keepalived minio mysql ensp 网络基础 xxl-job rabbitmq haproxy srs 音视频 webrtc javascript
目录
没有一个冬天不可逾越,没有一个春天不会来临。最慢的步伐不是跬步,而是徘徊,最快的脚步不是冲刺,而是坚持。