P1563 [NOIP2016 提高组] 玩具谜题
题目传送门
这道题实在是一道水题
话不多说,上代码
#include<iostream>
#include<cstring>
using namespace std;
struct a{int io;//in朝里 out朝外 小人的朝向 string name;//小人的名字 int number;//角色编号
}a[100000];
int main(){int n, m;cin >> n >> m;for(int i = 1;i <= n;i++){cin >> a[i].io >> a[i].name;a[i].number = i;}int id = 1;for(int i = 1;i <= m;i++){int ch, num;cin >> ch >> num;if(a[i].io == ch){id -= num;if(id < 0){id += n;}}else{id += num;if(id > n){id -= n;}}}cout << a[id].name;return 0;
}
第一次
后来我调试了一下
#include<iostream>
#include<cstring>
using namespace std;
struct a{bool b;string name;
}x[100005];
int main(){int n, m, f, s;cin >> n >> m;int now = 1;for(int i = 1;i <= n;i++){cin >> x[i].b >> x[i].name;}for(int i = 1;i <= m;i++){cin >> f >> s;if(f == x[now].b){now -=s;if(now <= 0){now += n;}}else{now += s;if(now > n){now -= n;}}}cout << x[now].name;return 0;
}
第二次