SDUTOJ4384_一方通行与最后之作(18级期末上机考试二)
一方通行与最后之作
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级期末上机考试二)相关推荐
- 4384---一方通行与最后之作 (sdut oj)
一方通行与最后之作 学园都市仅有的七名超能力者(Level 5)排名第一位,能力为"矢量操作",代号「一方通行(Accelerator)」. 某天,「最后之作」自己去商场玩耍,很晚 ...
- 华为18级工程师三年心血终成趣谈网络协议文档(附大牛讲解)
华为18级工程师三年心血终成趣谈网络协议文档(附大牛讲解) 程序员高级码农II 2020-09-25 07:23:00 前言 虽然在大学的时候大家都学过网络协议 ,但是肯定感觉网络协议的知识点非常多 ...
- 18级计算机应用基础期中考试题,早安正能量 励志新开始---法学与社会学学院18级新生开展早自习活动...
为响应学校"三度"建设精神,法学与社会学学院从第十周起开设早自习课程.2018级学生大学军事理论课程.专业入门指导课程.计算机应用基础课程.大学写作课程,于第八周正式结束.整体上, ...
- 我九点钟上计算机课用英语怎么说,9点18分的英语怎么写(9点18用英语怎么说二种)...
1.9点18用英语怎么说二种 9点18的英语:nine eighteen 或者 eighteen past nine 1.所有的时间可以用小时+分钟顺读表示. 9点18顺读表示:nine eighte ...
- 跨专业考清华大学的计算机,18级学长跨考清华大学计算机考研经验分享
18级学长跨考清华大学计算机考研经验分享本站小编 Free考研网/2019-05-28 考清华计算机也考了两年,在这里得到了很多帮助,所以也是时候贡献一下了.先说下我的基本情况吧.我本科是天津大学精仪 ...
- 18级的谷歌卫星地图纹理如何匹配到15级的高程
制作地形图的时候往往需要将卫星图和等高线叠加在一起看看效果,怎样实现等高线和谷歌卫星地图叠加呢,今天就给大家介绍如何将18级的谷歌卫星地图纹理和15级的高程匹配的教程,十分的简单. 工具/原料 水经注 ...
- 清晰度18级,最新能到2022年的历史影像来瞅一眼(高分卫星、资源卫星)
序: 看到群友发了一张山东天地图的截图,赫然看到[时空影像],好奇点了进来,发现: 1.整个省的历史影像非常齐全,从2006到2022,基本每年都有 2.数据非常新,最新的是2022年3月 3.不同级 ...
- 计算机学院班群头像,【北工大表白墙】计算机类18级3班孙宇辰同学,你是广袤沙漠里的盐。...
原标题:[北工大表白墙]计算机类18级3班孙宇辰同学,你是广袤沙漠里的盐. ----------------------------------- ❤表白1:孙宇辰同学,现在我在四十多公里外昌平,刚刚 ...
- 复旦大学2018--2019学年第一学期(18级)高等代数I期末考试第七大题解答
七.(本题10分) 设 $V$ 为 $n$ 维线性空间, $\varphi,\psi$ 是 $V$ 上的线性变换, 满足 $\varphi\psi=\varphi$. 证明: $\mathrm{Ke ...
- 字少,事大!华为鸿蒙系统真来了!18级台风也来助阵!
文/北妈 阅读本文需要 2.3分钟 一 老规矩,周五不加班!周五不加班!周五不加班! 今天 3件"小"事,2件重要的事,一定要看完 1. 字少. 事儿大! 央视新闻都报道了呢 ...
最新文章
- python format函数实例_Python字符串格式化,format格式化函数详细使用
- Linux命令——cut命令学习
- selenium call javascript function
- datagridview使用mysql_使用DataGridView进行增删改查,并同步到数据库
- 二、optimizer_trace基本使用
- LayaAir TTF字体使用
- html语言字体为隶书,css如何设置隶书字体库
- 2020年,抖音赚钱全攻略,做抖音,看这就够了!
- 并发和并行以及线程安全
- 分享在Linux下编译Android源代码并修改调试系统自带应用的方法
- 基于51单片机的电子万年历的设计-源代码
- java吸血鬼数字_[求助]吸血鬼数字
- 明天14:00,棕榈泉见~友盟+、大麦网、凯叔讲故事都在
- css字号 h5_你应该知道的CSS文字大小单位PX、EM、PT
- latex怎样让题号顶格_latex proof顶格
- 同步电机仿真永磁同步电机 弱磁控制 simulink仿真模型 凸极电机
- mjpg-streamer本机安装与嵌入式移植
- 编译器的优化真是太难了!
- 【实验四 循环结构】7-4 sdut-C语言实验-求阶乘(循环结构)
- 开源一个服务端游戏开发框架
热门文章
- ‘adb‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。
- 拓展软文写作主题角度
- 仙人掌之歌——路转峰回(1)
- QT编译程序出现[ui_Widget.h] Error 1
- python的镜像安装和设置
- 人都“爆”了有这么好的东西《vtdakz.com》顶硬了!
- 多彩泡泡屏保特效(JAVA版)
- Rush Hour Puzzle
- inoreader阅读器使用
- 2023届计算机保研面试基础专业问题(数据结构、算法、计算机语言、计算机网络、数据库、操作系统、数学)