首页 > 代码库 > NASSA’s Robot
NASSA’s Robot
NASSA的机器人降落到了火星,降落的地方可以用X-Y坐标表示。机器人最开始在(0, 0)。由于传输问题,部分指令可能会混淆,现在给出确定的命令与未知命令,请帮忙确认机器人的X、Y坐标最小最大值分别是多少。
输出格式为:
X最小 Y最小 X最大 Y最大
模拟一下数据就能明白,走到的位置和命令执行顺序没有关系。
例如:RLL与RLR走到的位置都是一样的。
因此,只要统计一下指令就好了。因为RL是一对相反的指令,UD是一对相反的指令。所以相减就能得到除不确定 指令外的最终位置。而不确定的命令在极端情况下可能全是RLUD四条命令中的任意一个。所以用最终位置的坐标加减不确定命令的数量就可以得到所要求的值。
下面附上代码:
/* * Problem: F * Date: 2014-7-20 * Author: Wuhen*/#include <map>#include <list>#include <queue>#include <string>#include <vector>#include <cstdarg>#include <stdio.h>#include <string.h>#include <stdlib.h>#include <iostream>#include <algorithm>#define LL long long#define Clean(a) memset(a, 0, sizeof(a))using namespace std;int main(){ int T; cin >> T; while(T--) { int x, y, n; x = y = n = 0; string s; cin >> s; for (int i = 0; i < s.size(); i++) switch(s[i]) { case ‘U‘: y += 1; break; case ‘D‘: y -= 1; break; case ‘L‘: x -= 1; break; case ‘R‘: x += 1; break; case ‘?‘: n += 1; break; } printf("%d %d %d %d\n", x-n, y-n, x+n, y+n); } return 0;}
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。