原始题目
1112: 机器人的指令
- Time Limit: 1 Sec
- Memory Limit: 128 Mb
- Submitted: 3392
- Solved: 1245
Description
数轴原点有一个机器人。该机器人将执行一系列指令,你的任务是预测所有指令执行完毕之后它的位置。
输入第一行为数据组数\(T (T≤100)\)。每组数据第一行为整数 $n (1≤n≤100) $,即指令条数。以下每行一条指令。指令按照输入顺序编号为\(1 \cdots n\)。
Output
对于每组数据,输出机器人的最终位置。每处理完一组数据,机器人应复位到数轴原点。
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
Hint
Source
湖南省第八届大学生计算机程序设计竞赛
题目大意
如题
解题思路
储存每一操作,线性扫。
解题代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
| #include <cstdio> #include<cstring> #include <set> #include <string>
#include <iostream> #include <iomanip> #include <queue> #include <vector> #include <map> #include <algorithm> #define rep(i,a,n) for(int i=a;i<n;++i) #define per(i,a,n) for(int i=n-1;i>=a;--i) #define cl(x,a) memset(x,a,sizeof(x)) #define all(x) x.begin(),x.end() #define INF 0x3f3f3f3f #define EPS 1e-9 #define mod 1000000007 #define fi first #define se second
using namespace std; const int maxn=1e5+5; typedef long long ll; typedef unsigned long long ull; typedef vector<int> vi; typedef pair<int,int> pii; int t,n,m,a;
int num[maxn]; string ctl;
int main(){ ios::sync_with_stdio(false); cin>>t; while(t--){ int temp=0; cin>>n; rep(i,1,n+1){ cin>>ctl; if(ctl[0]=='S'){ cin>>ctl>>a; num[i]=num[a]; } else if(ctl[0]=='L'){ num[i]=-1; } else num[i]=1; } rep(i,1,n+1){ temp+=num[i]; } cout<<temp<<endl; } }
|
收获与反思
暂无