原题传送门

思路


一道出自NOIP提高组的纯模拟大水题,不知道为什么在某谷上被打了高性能的标签(恶意评分QAQ?),不必在意,直接暴力就能AC,
这道题只要看好顺逆时针是加是减就行了,至于环,用一个数组就可以模拟,注意把下标时刻模n就行,另外,减下标时不要出现负数。

Code


#include<iostream>
using namespace std;

struct node
{
    int head;
    string name;
}a[100005];
int n,m,x,y,now;

int main()
{
    cin>>n>>m;
    for(int i=0;i<n;i++)
    {
        cin>>a[i].head>>a[i].name;
    }
    for(int i=1;i<=m;i++)
    {
        cin>>x>>y;
        if(a[now].head==0&&x==0)now=(now+n-y)%n;//加n是为了防止产生负数,下同
        else if(a[now].head==0&&x==1)now=(now+y)%n;
        else if(a[now].head==1&&x==0)now=(now+y)%n;
        else if(a[now].head==1&&x==1)now=(now+n-y)%n;
    }
    cout<<a[now].name<<endl;
    return 0;
}
02-01 02:07