一方通行与最后之作

Time Limit: 1000 ms Memory Limit: 65536 KiB

Submit Statistic

Problem Description

学园都市仅有的七名超能力者(Level 5)排名第一位,能力为“矢量操作”,代号「一方通行(Accelerator)」。

某天,「最后之作」自己去商场玩耍,很晚还没有回来。「一方通行」很担心于是决定去找最后之作。

商场可以大体看作一个 N*M 的矩形,墙壁和遮挡物用 '*' 表示,空白位置用 '.' 表示,一方通行和最后之作的起始位置分别用 'A' 和 'L' 表示。(显然,他们两个人的起始位置是不可能有遮挡物的)

两人总共最多进行 K 次移动,每次移动可以用两个字符串 name 和 direction 来表示。

如果 name 为"Accelerator",表示本次是「一方通行」移动。

如果 name 为"LastOrder",表示本次是「最后之作」移动。

direction 可能为"up"或"down"或"left"或"right",分别表示向上、向下、向左、向右移动一个单位长度。

   如果本次要移动的位置在商场外或者存在遮挡物,那么将不移动。如果两人中途已经相遇(坐标重合),那么之后的所有移动全部取消。

数据保证「一方通行」和「最后之作」会相遇,如果最后是「一方通行」走向「最后之作」请输出"Accelerator",如果是「最后之作」走向「一方通行」请输出"MisakaMisaka"。然后输出两人实际总共移动了多少步。

Input

首先输入两个正整数 N, M表示商场的大小。(2 <= N, M <= 100)

然后输入一个 N 行 M 列的字符矩阵。

下一行输入一个正整数 K,表示两人总共最多进行 K 次移动。 ( 1 <= K <= 100)

接下来 K 行,每行包括两个字符串,分别表示移动的角色和移动的方向。

Output

第一行输出一个字符串。

第二行输出一个正整数,表示两人实际总共移动了多少步相遇。

Sample Input

4 5
A.*..
..*..
..*..
....L
11
Accelerator down
LastOrder left
LastOrder right
LastOrder left
LastOrder left
Accelerator down
Accelerator down
Accelerator down
LastOrder up
LastOrder left
LastOrder left

Sample Output

MisakaMisaka
9

Hint

样例中,两人最终在第四行第一列相遇,最后一次移动是「最后之作」走向「一方通行」。

「一方通行」移动了3步,「最后之作」移动了6步,两人总共移动了9步。

Source

lxw

#include <bits/stdc++.h>
using namespace std;
struct node
{int x;int y;int step;
} a, l;
int main()
{char s[111][111];char name[15], go[15];int n, m;scanf("%d %d", &n, &m);for (int i = 1; i <= n; i++){int j;for (j = 1; j <= m; j++){// scanf(" %c", &s[i][j]); // %c前面没有空格会出错cin >> s[i][j];if (s[i][j] == 'A'){a.x = i;a.y = j;a.step = 0;}if (s[i][j] == 'L'){l.x = i;l.y = j;l.step = 0;}}}int t;scanf("%d", &t);int flag = 0;while (t--){scanf("%s %s", name, go);if (name[0] == 'A' && flag == 0){if (go[0] == 'u' && a.x - 1 >= 1 && s[a.x - 1][a.y] != '*'){a.x -= 1;a.step++;}else if (go[0] == 'd' && a.x + 1 <= n && s[a.x + 1][a.y] != '*'){a.x += 1;a.step++;// cout << a.x << ' ' << a.y << endl;}// cout<<"test"<<endl;else if (go[0] == 'l' && a.y - 1 >= 1 && s[a.x][a.y - 1] != '*'){a.y -= 1;a.step++;}else if (go[0] == 'r' && a.y + 1 <= m && s[a.x][a.y + 1] != '*'){a.y += 1;a.step++;}if (a.x == l.x && a.y == l.y){flag = 1;}}else if (name[0] == 'L'&& flag == 0){if (go[0] == 'u' && l.x - 1 >= 1 && s[l.x - 1][l.y] != '*'){l.x -= 1;l.step++;}else if (go[0] == 'd' && l.x + 1 <= n && s[l.x + 1][l.y] != '*'){l.x += 1;l.step++;}else if (go[0] == 'l' && l.y - 1 >= 1 && s[l.x][l.y - 1] != '*'){l.y -= 1;l.step++;}else if (go[0] == 'r' && l.y + 1 <= m && s[l.x][l.y + 1] != '*'){l.y += 1;l.step++;}if (a.x == l.x && a.y == l.y){flag = 2;}}}if (flag == 1)printf("Accelerator\n");else if (flag == 2)printf("MisakaMisaka\n");printf("%d\n", a.step + l.step);return 0;
}/***************************************************
User name: jk180602
Result: Accepted
Take time: 0ms
Take Memory: 208KB
Submit time: 2019-01-08 11:29:01
****************************************************/

转载于:https://www.cnblogs.com/iQXQZX/p/10258737.html

SDUTOJ4384_一方通行与最后之作(18级期末上机考试二)相关推荐

  1. 4384---一方通行与最后之作 (sdut oj)

    一方通行与最后之作 学园都市仅有的七名超能力者(Level 5)排名第一位,能力为"矢量操作",代号「一方通行(Accelerator)」. 某天,「最后之作」自己去商场玩耍,很晚 ...

  2. 华为18级工程师三年心血终成趣谈网络协议文档(附大牛讲解)

    华为18级工程师三年心血终成趣谈网络协议文档(附大牛讲解) 程序员高级码农II 2020-09-25 07:23:00 前言 虽然在大学的时候大家都学过网络协议 ,但是肯定感觉网络协议的知识点非常多 ...

  3. 18级计算机应用基础期中考试题,早安正能量 励志新开始---法学与社会学学院18级新生开展早自习活动...

    为响应学校"三度"建设精神,法学与社会学学院从第十周起开设早自习课程.2018级学生大学军事理论课程.专业入门指导课程.计算机应用基础课程.大学写作课程,于第八周正式结束.整体上, ...

  4. 我九点钟上计算机课用英语怎么说,9点18分的英语怎么写(9点18用英语怎么说二种)...

    1.9点18用英语怎么说二种 9点18的英语:nine eighteen 或者 eighteen past nine 1.所有的时间可以用小时+分钟顺读表示. 9点18顺读表示:nine eighte ...

  5. 跨专业考清华大学的计算机,18级学长跨考清华大学计算机考研经验分享

    18级学长跨考清华大学计算机考研经验分享本站小编 Free考研网/2019-05-28 考清华计算机也考了两年,在这里得到了很多帮助,所以也是时候贡献一下了.先说下我的基本情况吧.我本科是天津大学精仪 ...

  6. 18级的谷歌卫星地图纹理如何匹配到15级的高程

    制作地形图的时候往往需要将卫星图和等高线叠加在一起看看效果,怎样实现等高线和谷歌卫星地图叠加呢,今天就给大家介绍如何将18级的谷歌卫星地图纹理和15级的高程匹配的教程,十分的简单. 工具/原料 水经注 ...

  7. 清晰度18级,最新能到2022年的历史影像来瞅一眼(高分卫星、资源卫星)

    序: 看到群友发了一张山东天地图的截图,赫然看到[时空影像],好奇点了进来,发现: 1.整个省的历史影像非常齐全,从2006到2022,基本每年都有 2.数据非常新,最新的是2022年3月 3.不同级 ...

  8. 计算机学院班群头像,【北工大表白墙】计算机类18级3班孙宇辰同学,你是广袤沙漠里的盐。...

    原标题:[北工大表白墙]计算机类18级3班孙宇辰同学,你是广袤沙漠里的盐. ----------------------------------- ❤表白1:孙宇辰同学,现在我在四十多公里外昌平,刚刚 ...

  9. 复旦大学2018--2019学年第一学期(18级)高等代数I期末考试第七大题解答

    七.(本题10分)  设 $V$ 为 $n$ 维线性空间, $\varphi,\psi$ 是 $V$ 上的线性变换, 满足 $\varphi\psi=\varphi$. 证明: $\mathrm{Ke ...

  10. 字少,事大!华为鸿蒙系统真来了!18级台风也来助阵!

    文/北妈 阅读本文需要 2.3分钟 一 老规矩,周五不加班!周五不加班!周五不加班! 今天 3件"小"事,2件重要的事,一定要看完 1. 字少. 事儿大!   央视新闻都报道了呢 ...

最新文章

  1. python format函数实例_Python字符串格式化,format格式化函数详细使用
  2. Linux命令——cut命令学习
  3. selenium call javascript function
  4. datagridview使用mysql_使用DataGridView进行增删改查,并同步到数据库
  5. 二、optimizer_trace基本使用
  6. LayaAir TTF字体使用
  7. html语言字体为隶书,css如何设置隶书字体库
  8. 2020年,抖音赚钱全攻略,做抖音,看这就够了!
  9. 并发和并行以及线程安全
  10. 分享在Linux下编译Android源代码并修改调试系统自带应用的方法
  11. 基于51单片机的电子万年历的设计-源代码
  12. java吸血鬼数字_[求助]吸血鬼数字
  13. 明天14:00,棕榈泉见~友盟+、大麦网、凯叔讲故事都在
  14. css字号 h5_你应该知道的CSS文字大小单位PX、EM、PT
  15. latex怎样让题号顶格_latex proof顶格
  16. 同步电机仿真永磁同步电机 弱磁控制 simulink仿真模型 凸极电机
  17. mjpg-streamer本机安装与嵌入式移植
  18. 编译器的优化真是太难了!
  19. 【实验四 循环结构】7-4 sdut-C语言实验-求阶乘(循环结构)
  20. 开源一个服务端游戏开发框架

热门文章

  1. ‘adb‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。
  2. 拓展软文写作主题角度
  3. 仙人掌之歌——路转峰回(1)
  4. QT编译程序出现[ui_Widget.h] Error 1
  5. python的镜像安装和设置
  6. 人都“爆”了有这么好的东西《vtdakz.com》顶硬了!
  7. 多彩泡泡屏保特效(JAVA版)
  8. Rush Hour Puzzle
  9. inoreader阅读器使用
  10. 2023届计算机保研面试基础专业问题(数据结构、算法、计算机语言、计算机网络、数据库、操作系统、数学)