蓝桥试题-兰顿蚂蚁
问题描述:
兰顿蚂蚁,是于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
面试题
其他
1933
面试题packagecom.dzqc.campus.controller;publicclassA{publicstaticAa=newA();publicstaticAa2=newA
blog
面试题servlet的执行过程
框架
3388
1.浏览器请求浏览器向服务器请求时,服务器不会直接执行我们的类,而是到web.xml里寻找路径名①:第一步,浏览器输入访问路径后,携带了请求行,头,体②:第二步,根据访问路径找到已注册的servlet名称③:第三步,根据映射找到对应的servlet名(在xml里配置的)③:第四步,根据根据servlet名找到我们全限定类名,既我们自己写的类2.服务器创建对象①:服务器找到全限定类名后(xml配置)
其他
3197
1、五升壶装满;2、倒入六升壶(未满,内有5升);3、再把五升壶装满;4、倒入六升壶,六升壶满,五升壶剩4升;5、六升壶倒空,6、五升壶里剩余四升水倒入六升壶,此时六升壶内有四升水7、五升壶装满;8、倒入六升壶装满,此时五升壶内有三升水,完毕。
其他
4845
查询每门课程成绩都大于80分学生的学号数据库表studentnamescorecourseA85语文A75数学A82英语B75语文B89数学B79英语C90语文C100数学C100英语请写出每门课程都超过80分的那个人名字的SQL语句SQL1:selectnamefromtest.stugroupbynamehavingcount(score)=sum(casewhenscore80then1el
file
java 动态编译测试
java javac 动态编译
1161
测试代码:importjava.io.UnsupportedEncodingException;importjava.lang.reflect.InvocationTargetException
blog
32个java面试必考点
java基础
2071
32个java面试必考点
blog
栈的应用-迷宫问题
数据结构与算法
8599
1.问题描述:问题:上面有一个迷宫,灰色部分代表不能通过,白色部分代表可以通过,现在从a点出发,能否找到一条路径到达b点,如果能,输出此路径。下面采用试探法求解,采用栈结构保存每一步的内容(包括坐标
file
html纯js实现图片懒加载(测试代码)
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
2024-08
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
加密算法
目录
没有一个冬天不可逾越,没有一个春天不会来临。最慢的步伐不是跬步,而是徘徊,最快的脚步不是冲刺,而是坚持。