历届试题 兰顿蚂蚁

http://lx.lanqiao.org/problem.page?gpid=T125

历届试题 兰顿蚂蚁  
时间限制:1.0s   内存限制:256.0MB
问题描述


  兰顿蚂蚁,是于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
分析:
直接模拟路径,和蚂蚁的坐标。
AC代码:
 1 #include <stdio.h>
 2 #include <algorithm>
 3 #include <iostream>
 4 #include <string.h>
 5 #include <string>
 6 #include <math.h>
 7 #include <stdlib.h>
 8 #include <queue>
 9 #include <stack>
10 #include <set>
11 #include <map>
12 #include <list>
13 #include <iomanip>
14 #include <vector>
15 #pragma comment(linker, "/STACK:1024000000,1024000000")
16 #pragma warning(disable:4786)
17 
18 using namespace std;
19 
20 const int INF = 0x3f3f3f3f;
21 const int Max = 10000 + 10;
22 const double eps = 1e-8;
23 const double PI = acos(-1.0);
24 int a[110][110];
25 
26 void run(int x , int y , char str , int k)
27 {
28     if(k == 0)
29         printf("%d %d\n", x , y);
30     else
31     {
32         k --;
33         if(a[x][y] == 0)
34         {
35             a[x][y] = 1;
36             if(str == 'U')
37                 run(x , y - 1 , 'L' , k);
38             else if(str == 'D')
39                 run(x , y + 1 , 'R' , k);
40             else if(str == 'L')
41                 run(x + 1, y , 'D' , k);
42             else
43                 run(x - 1 , y , 'U' , k);
44         }
45         else
46         {
47             a[x][y] = 0;
48             if(str == 'U')
49                 run(x , y + 1 , 'R' , k);
50             else if(str == 'D')
51                 run(x , y - 1 , 'L' , k);
52             else if(str == 'L')
53                 run(x - 1, y , 'U' , k);
54             else
55                 run(x + 1 , y , 'D' , k);
56         }
57     }
58 }
59 
60 int main()
61 {
62     int i , j , n , m , x , y , k;
63     char s;
64     scanf("%d%d",&n,&m);
65     for(i = 0;i < n;i ++)
66         for(j = 0;j < m;j ++)
67             scanf("%d",&a[i][j]);
68     scanf("%d %d %c %d", &x , &y , &s , &k);
69     run(x , y , s , k);
70     return 0;
71 }
View Code

 

转载于:https://www.cnblogs.com/jeff-wgc/p/4450887.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/407639.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Taro+react开发(26)taro基本骨架

import Taro, { Component } from "tarojs/taro";class companyTitle extends Component {state {geyao: "1111"};render() {return <div>11111</div>;} }export default companyTitle;

【转】基于XML-RPC的BloggerAPI学习

Luliang的mail2blog脚本&#xff0c;通过基于XML-RPC的BloggerAPI来实现的发布blog的功能。BloggerAPI是一套程序接口&#xff0c;用以支持远程操作blog.这个规范现在的版本是1.0&#xff0c;是个试验版本和α版本。但是&#xff0c;规范的研发人员不再对BloggerAPI进一步地开发…

前端技巧——js篇

前端技巧——js篇 复制操作 copy () {let url this.code;let oInput document.createElement(input);oInput.value url;document.body.appendChild(oInput);oInput.select(); // 选择对象console.log(oINput.value);document.execCommand(Cooy); // 执行浏览器复制命令a…

Webpack基础之插件

插件(Plugins)&#xff1a; 插件是 wepback 的支柱功能。在你使用 webpack 配置时&#xff0c;webpack 自身也构建于同样的插件系统上&#xff01; 插件目的在于解决 loader 无法实现的其他事 剖析&#xff1a; webpack 插件是一个具有 apply 属性的 JavaScript 对象。 app…

Taro+react开发(27)别加view

return (<div><View>11111</View><ImageclassName"unit-info-tax-tip"src{require("./companyTitle/system-item1.png")}/></div>

使用windows资源管理器打开jar

在命令行里输入&#xff1a; assoc .jarCompressedFolder转载于:https://www.cnblogs.com/pavkoo/p/3805456.html

MYSQL进入客户端后切换服务器的简单做法试验

今天发现有个\r 选项可以切换连接。不过功能比较单一。connect (\r) Reconnect to the server. Optional arguments are db and host.进入客户端后切换服务器连接的做法。只能是切换到和另外一个SERVER端口&#xff0c;用户名&#xff0c;密码都是一样的。原来SERVER&#xf…

dos下登录fedora下的vsftp失败

我有两个FTP站点&#xff1a;A - windows xp下的IIS, B - 虚拟机fedora12下的vsftp&#xff0c;都是正常运行的&#xff0c;同时这两个站点都允许匿名访问。 在dos下访问A&#xff0c;或在fedora12终端下登录B&#xff0c;都是成功的。但是在dos下访问B&#xff0c;或在fedora…

Flex布局实战篇

网格布局&#xff1a; 1.基本网格布局&#xff1a; 最简单的网格布局&#xff0c;就是平均分布。在容器里面平均分配空间&#xff0c;只是需要设置项目的自动缩放 HTML代码如下 CSS代码如下 因为每个网格都已经设置好了固定的百分比空间&#xff0c;唯一要做的就是给…

[Python]linux自己定义Python脚本命令

在window下写好的程序配置到Linux上&#xff0c;要实现随意文件夹下的命令调用。 因为初学Linux&#xff0c;这里从文件传输等最主要的方法入手&#xff0c;记录配置的过程中遇到的各种问题。 连接远端server 这里使用putty这个工具&#xff0c;用SSH方法连上远端server 传输文…

滑动图片验证以及滑块验证

1、图片验证longbow.slidercaptcha 包下载地址以及示例 https://github.com/Yephy/SliderCaptcha https://gitee.com/JayZhou/SliderCaptcha https://blog.csdn.net/tanqingfu1/article/details/105295158 2、滑块验证slideunlock 包下载地址以及示例 http://www.internetke.co…

javascript学习系列(2):数组中的filter方法

最好的种树是十年前,其次是现在。歌谣 每天一个前端小知识 提醒你改好好学习了 知乎博主 csdn博主 b站博主 放弃很容易但是坚持一定很酷 我是歌谣 喜欢就一键三连咯 你得点赞是对歌谣最大的鼓励 1前言 在我们的日常开发中 不免会有很多需要处理数据的方法 本节主要说一说f…

asp.net)js 在当前日期上加一天和系统发布

今天一上班,网站前台的特价酒店页面中 日期显示错误.由于日期是在aspx页面中用js取得的.因此只要将页面的js函数修改一下就行.如下: function gotourl(){ var dayendnew Date(); //在如期dayend上加2天 dayenddayend.setDate(dayend.getDate()2); var enddayend.getFullYear()&…

grep搜索子目录中包含某字符串的特定文件

grep -n "str" -r ./这是查找当前目录下以及下辖子目录下所有包含str字符串的文件,会列出文件名.以及该行的内容.以及行号 ---------------------------------------------------------------------------------------------------------------------------比如&…

写JQuery 插件 什么?你还不会写JQuery 插件

http://www.cnblogs.com/Leo_wl/p/3409083.html 前言   如今做web开发&#xff0c;jquery 几乎是必不可少的&#xff0c;就连vs神器在2010版本开始将Jquery 及ui 内置web项目里了。至于使用jquery好处这里就不再赘述了&#xff0c;用过的都知道。今天我们来讨论下jquery的插件…

stylus之选择器(Selectors)

选择器(Selectors)&#xff1a; 缩排&#xff1a; Stylus的空格有重要的意义&#xff0c;我们使用缩排和凹排代替花括号”{“以及”}” 上面代码就对应于 如果你喜欢&#xff0c;你可以把冒号加上&#xff0c;用做分隔&#xff0c;便于阅读 规则集: Stylus就跟CSS一…

正则仅输入文字字母空格,但必须含有字母

/^(?!\d$)[\s\da-zA-Z]$/ 意为正则仅输入文字字母空格&#xff0c;但必须含有字母 (?!\d$) 正方向上查找“非至少一个数字结尾”处才开始匹配&#xff0c;且返回空。&#xff08;为什么是空&#xff0c;(?!\d$)前什么也没有写&#xff0c;等于即使满足正则的条件也不会得到任…

委托模型和事件模型 [C#]

1. 多播委托与委托有关的语法&#xff1a; 定义委托&#xff1a;<modifiers> delegate <return_type> <delegate_name> (<argument_list>)public delegate void Message() ;创建委托实例&#xff1a;<delegate_type> <name> new <d…

javascript学习系列(3):数组中的foreach方法

最好的种树是十年前,其次是现在。歌谣 每天一个前端小知识 提醒你改好好学习了 知乎博主 csdn博主 b站博主 放弃很容易但是坚持一定很酷 我是歌谣 喜欢就一键三连咯 你得点赞是对歌谣最大的鼓励 1前言 在我们的日常开发中 不免会有很多需要处理数据的方法 本节主要说一说f…

根据IP地址查询其所属城市

提供查询接口的网站收藏&#xff1a; 新浪的IP地址查询接口&#xff1a;http://int.dpool.sina.com.cn/iplookup/iplookup.php?formatjs新浪多地域测试方法&#xff1a;http://int.dpool.sina.com.cn/iplookup/iplookup.php?formatjs&ip218.192.3.42搜狐IP地址查询接口&…