H-机器人的指令(水题)

13人阅读 评论(0) 收藏 举报
分类:

  • Description:数轴原点有一个机器人。该机器人将执行一系列指令,你的任务是预测所有指令执行完毕之后它的位置。

·LEFT:往左移动一个单位

·RIGHT: 往右移动一个单位

·SAME AS i: 和第i 条执行相同的动作。输入保证i 是一个正整数,且不超过之前执行指令数

Input

输入第一行为数据组数T (T<=100)。每组数据第一行为整数n (1<=n<=100),即指令条数。以下每行一条指令。指令按照输入顺序编号为1~n。

Output

对于每组数据,输出机器人的最终位置。每处理完一组数据,机器人应复位到数轴原点。

Sample Input
2
3
LEFT
RIGHT
SAME AS 2
5
LEFT
SAME AS 1
SAME AS 2
SAME AS 1
SAME AS 4
Sample Output
    1
    -5

  • 比赛时因为这道题WA了好多次,但就是找不到BUG。后来也没找到。
  • 对于字符串输入的问题,要多注意吸收字符等细节问题。可以学学STL中的string ,处理字符串方便一些。
  • 通常数组 如果有大于1000的范围 ,写在main函数的外面。(原因:全局变量在静态存储区分配内存,局部变量是在栈上分配内存空间的。(c语言程序在运行时会动态创建一个堆栈段,里面存放着调用栈,保存着函数的调用关系和局部变量。)如果数组太大,可能会造成栈溢出。
  • 下面是未AC的 Code
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;

int main()
{
	int T;
	scanf("%d",&T);
	while(T--)
	{
		int n;
		scanf("%d",&n);
		int a[n+1];
		memset(a,0,sizeof(int) * (n+1));	
		char c;
		for(int i=1;i<=n;i++)
		{
			char ch[15];
			if(i==1) c = getchar();
			gets(ch);
			int w = strlen(ch);
			
			if(ch[0] == 'L')      a[i] = -1;
			else if(ch[0] == 'R') a[i] = 1;
			else if(w==9)
			{
				int b = ch[8] - '0';
				a[i] = a[b]; 
			} 
			else if(w==10)
			{
				int b = (ch[8] - '0') * 10 + ch[9] - '0';
				a[i] = a[b]; 
			} 
			else if(w==11)
			{
				int b = (ch[8] - '0') * 100 + (ch[9] - '0') * 10 + (ch[10] - '0') ;
				a[i] = a[b]; 
			}

		}
		int sum = 0;
		for(int i=1;i<=n;i++)
		{
		//	printf("%d ",a[i]);
			sum = sum + a[i];
		}
		printf("%d\n",sum);
		
		
		
	}
	
	
	
	
	
	
	return 0;
}

  • 下面是AC的 Code
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;

int a[105]; //通常数组 如果有大于1000的范围 ,写在main函数的外面
 
int main()
{
	int T;
	scanf("%d",&T);
	while(T--)
	{
		int n;
		scanf("%d",&n);
	//	int a[n+1];  不要这样定义,以防出现不必要的麻烦 
		memset(a,0,sizeof(int) * (n+1));	
		char c;
		for(int i=1;i<=n;i++)
		{
			char str1[15];
			scanf("%s",str1);
			if(str1[0] == 'L') a[i] = -1;
			else if(str1[0] == 'R') a[i] = 1;
			else
			{
				char str2[5];
				scanf("%s",str2);
				int x;
				scanf("%d",&x);
				a[i] = a[x];		
			}
		}
		int sum = 0;
		for(int i=1;i<=n;i++)
		{
		//	printf("%d ",a[i]);
			sum = sum + a[i];
		}
		printf("%d\n",sum);
		
		
		
	}
	
	
	
	
	
	
	return 0;
}


查看评论

ABB 机器人 通信指令(人机对话):

(1)清屏指令:TPErase (2)写屏指令:PWrite    String   tring:显示的字符串。(string)在示教器显示屏上显示字符串数据,也可以用“……”形式直接定义字符...
  • PINBODEXIAOZHU
  • PINBODEXIAOZHU
  • 2014年06月18日 13:21
  • 2146

爱普生机器人学习笔记01

SPEL语言: 1,标识符命令规则:英文字母+数字+下划线,英文字母开头,不区分大小写,不使用关键字,有最大字符数限制2,注释使用单引号‘3,语句用分号;隔开4,运算符:+,-,*,/,**,=,>...
  • FairyTailQ
  • FairyTailQ
  • 2016年10月28日 14:19
  • 1774

学习记录2:优先队列 (二叉堆实现)

优先队列是一类特殊的队列,它允许至少下列两种操作的数据结构:Insert(插入),DeleteMin(删除最小者,或者满足某个条件的最靠近者什么的,这里就假设最小值优先)   这里的是用二叉堆实现...
  • ilsswfr
  • ilsswfr
  • 2016年07月26日 11:23
  • 207

15-机器人

问题描述: 蒜头君收到了一份礼物,是一个最新版的机器人。这个机器人有 44 种指令:forward x,前进 xx 米。back x,先向后转,然后前进 xx 米...
  • Richard__Ting
  • Richard__Ting
  • 2018年02月24日 22:19
  • 64

CSU 1112机器人的指令(水题)

Description 数轴原点有一个机器人。该机器人将执行一系列指令,你的任务是预测所有指令执行完毕之后它的位置。 ·LEFT:往左移动一个单位 ·RIGHT: 往右移动一个单位 ·SAME...
  • qq_37164003
  • qq_37164003
  • 2017年08月07日 15:43
  • 117

机器人行走( * 某少年宫引进了一批机器人小车。可以接受预先输入的指令,按指令行动。小车的基本动作很简单,只有3种:左转(记为L),右转(记为R),向前走若干厘米(直接记数字)。 例如,我们)

/** * 某少年宫引进了一批机器人小车。可以接受预先输入的指令,按指令行动。小车的基本动作很简单,只有3种:左转(记为L),右转(记为R),向前走若干厘米(直接记数字)。 例如,我们可以对小...
  • wang263334857
  • wang263334857
  • 2013年07月01日 00:36
  • 862

这个用两条腿走路的机器人会有怎样的未来 | 漫读

▼ 大型年度AI人物评选——2017中国AI英雄风云榜,评分工作已结束,12月4日乌镇张榜! 奖项设置:技术创新人物TOP 10,商业创新人物TOP 10 表彰人物:华人科学家、学者、企...
  • McIl9G4065Q
  • McIl9G4065Q
  • 2017年12月02日 00:00
  • 151

计蒜客 机器人的相遇问题(扩展欧几里得模板题)

题目链接:https://www.jisuanke.com/course/615/28212 题目大意:求解走多少步后,两个人再次相遇。 题目思路:将式子总结成ax+by=gcd(a,b)的形式,...
  • qq_29980371
  • qq_29980371
  • 2017年08月29日 19:06
  • 335

【蓝桥杯-基础训练】机器人

蒜头君收到了一份礼物,是一个最新版的机器人。这个机器人有 44 种指令: forward x,前进 xx 米。back x,先向后转,然后前进 xx 米。left x,先向左转,然后前进 xx ...
  • m0_38033475
  • m0_38033475
  • 2018年02月01日 17:15
  • 111

9-机器人的坐标

问题描述:蒜头君收到了一份礼物,是一个最新版的机器人。这个机器人有 44 种指令:forward x,前进 xx 米。back x,先向后转,然后前进 xx 米。left x,先向左转,然后前进 xx...
  • liluo_2951121599
  • liluo_2951121599
  • 2018年02月25日 11:11
  • 54
    个人资料
    等级:
    访问量: 0
    积分: 100
    排名: 0
    文章存档