https://www.luogu.org/problem/show?pid=1563
传说中的膜题,对策是模拟。
//<<mogician & mengbier>> (NOIP2016) Accepted By Danger
#include<iostream>
#include<string>
using namespace std;
bool xrdrct[1000010]; //小人方向
bool zldrct[1000010]; //指令方向
string occu[1000010]; //职业字符串,这里用流来输入输出
int s[1000010];
int main(void)
{
int i,j,n,m;
cin>>n>>m;
for (i=1;i<=n;i++)
cin>>xrdrct[i]>>occu[i];
for (i=1;i<=m;i++)
cin>>zldrct[i]>>s[i];
j=1; //初始化小人位置,卖个萌
for (i=1;i<=m;i++)
{
if (xrdrct[j]==zldrct[i]) //如果方向相同
{
j=j-s[i]; //逆序行动
if (j<=0) j=j+n; //修复这个环
}
else
{
j=j+s[i]; //方向不相同,正序行动
if (j>n) j=j-n; //修复这个环
}
}
cout<<occu[j];
return 0;
}