题目描述

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

解题思路:
根据题目模拟,题目并没有说会越界,所以我们不用考虑越界

代码如下:

#include <iostream>
using namespace std;
const int N = 110;
int mp[N][N];
int nx, ny;
char c;
int sn;
int dx[] = {0, -1, 0, 1}, dy[] = {-1, 0, 1, 0};
//逆时针
int main() {int n, m;int x, y, ns;int state;char c;cin >> n >> m;for (int i = 0; i < n; i++)for (int j = 0; j < m; j++) {cin >> mp[i][j];}cin >> x >> y;cin >> c;cin >> sn;if (c == 'L')//逆时针state = 0;else if (c == 'U')state = 1;else if (c == 'R')state = 2;else if (c == 'D')state = 3;while (sn--) {if (mp[x][y] == 1)state = (state + 1) % 4;else {if (state == 0)state = 3;elsestate = state - 1;}mp[x][y] = !mp[x][y];x = x + dx[state];y = y + dy[state];}cout << x << " " << y << endl;return 0;
}

[蓝桥杯][2014年第五届真题]兰顿蚂蚁-模拟相关推荐

  1. [蓝桥杯][2014年第五届真题]兰顿蚂蚁(模拟)

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

  2. [蓝桥杯][2014年第五届真题]兰顿蚂蚁

    时间限制: 1Sec 内存限制: 128MB 题目描述 兰顿蚂蚁,是于1986年,由克里斯·兰顿提出来的,属于细胞自动机的一种. 平面上的正方形格子被填上黑色或白色.在其中一格正方形内有一只" ...

  3. 问题 1431: [蓝桥杯][2014年第五届真题]分糖果 ——思维+模拟

    10分钟写完了代码,提交了三次全部超时,检查了也没发现死循环,把错误代码放上,眼睛疼,明天再改. 题目描述 问题描述 有n个小朋友围坐成一圈.老师给每个小朋友随机发偶数个糖果,然后进行下面的游戏: 每 ...

  4. 问题 1819: [蓝桥杯][2014年第五届真题]Log大侠

    问题 1819: [蓝桥杯][2014年第五届真题]Log大侠 时间限制: 1Sec 内存限制: 128MB 提交: 236 解决: 173 题目描述  atm参加了速算训练班,经过刻苦修炼,对以2为 ...

  5. 蓝桥杯2014年第五届真题-六角填数

    题目 如图所示六角形中,填入1~12的数字. 使得每条直线上的数字之和都相同. 图中,已经替你填好了3个数字,请你计算星号位置所代表的数字是多少? 请通过浏览器提交答案,不要填写多余的内容. 题解 全 ...

  6. [蓝桥杯][2014年第五届真题]地宫取宝(记忆化搜索)

    题目描述 X 国王有一个地宫宝库.是 n x m 个格子的矩阵.每个格子放一件宝贝.每个宝贝贴着价值标签. 地宫的入口在左上角,出口在右下角. 小明被带到地宫的入口,国王要求他只能向右或向下行走. 走 ...

  7. [蓝桥杯][2014年第五届真题]排列序数(思维)

    题目描述 如果用a b c d这4个字母组成一个串,有4!=24种,如果把它们排个序,每个串都对应一个序号: abcd 0 abdc 1 acbd 2 acdb 3 adbc 4 adcb 5 bac ...

  8. [蓝桥杯][2014年第五届真题]稍大的串(STL)

    题目描述 串可以按照字典序进行比较.例如: abcd 小于 abdc 如果给定一个串,打乱组成它的字母,重新排列,可以得到许多不同的串,在这些不同的串中,有一个串刚好给定的串稍微大一些.科学地说:它是 ...

  9. [蓝桥杯][2014年第五届真题]生物芯片(数论)

    题目描述 X博士正在研究一种生物芯片,其逻辑密集度.容量都远远高于普通的半导体芯片. 博士在芯片中设计了 n 个微型光源,每个光源操作一次就会改变其状态,即:点亮转为关闭,或关闭转为点亮. 这些光源的 ...

最新文章

  1. 路由器运行python脚本_写个Python脚本来登录小米路由器
  2. 因果关系是通向强AI的阶梯or作用被夸大?
  3. rapidminer员工离职分析_HR如何做好离职分析?
  4. 动态修改easyui datagrid 列宽度
  5. docker 删除tag为none的docker镜像
  6. linux 隐藏脚本运行,linux – 为什么在运行ls时隐藏此文件?
  7. 【.NET Core 跨平台 GUI 开发】第二篇:Gtk# 布局入门,初识HBox 和 VBox
  8. 结构体怎么赋值_c语言学习之基础知识点介绍:结构体的介绍
  9. 编译原理中词法分析--部分实现
  10. GARFIELD@01-13-2005
  11. js/jquery判断浏览器的方法小结
  12. 佛系张小龙和他的微信帝国 | 畅言
  13. MyEclipse移动开发教程:设置所需配置的iOS应用(四)
  14. 网络工程师如何避免走弯路(二)
  15. e考证通电脑上怎么用
  16. 产品经理实践【四川省地震需求分析】
  17. 怎么查询dns服务器地址自动获取,如何查看DNS服务器地址以及IP地址
  18. ARM CPU Cortex-X3,Cortex-A715,Cortex-A510 | GPU Immortalis-G715
  19. V831——识别指定的人脸
  20. Python - 内置函数详解(截至v3.6.x)

热门文章

  1. C#趣味程序---真分数序列
  2. Android之实现多桌面图标app入口进入不同的页面,像2个独立运行的app一样,互不干扰。
  3. 通过高速计算机网络和多媒体,计算机网络作业及答案.doc
  4. python kivy ios_Kivy跨平台技术开发iOS
  5. 产品运行所需的信息检索失败_禁煤后用什么替代锅炉?看看三种热源运行费用对比就知道了...
  6. python浮点数类型与数学_Python3标准库:decimal定点数和浮点数的数学运算
  7. 这不是特效也不是魔术!
  8. 监督学习:KNN(K-近邻)算法实现手写数字识别的三种方法
  9. python从random生成列表_详解Python利用random生成一个列表内的随机数
  10. hadoop安装hive及配置mysql_Hadoop系列之Hive(数据仓库)安装配置