玩具谜题-洛谷-P1563

原题:
原题直接上链接
题意:
n个人围成一圈,每个人都有自己的名字和自己的朝向(朝圈内或者朝圈外),之后有m个指令,0代表向左手数,1表示向右手数。问最终指向谁。
题解:
模拟水题一道,唯一要注意的就是看清题目,编号是按逆时针转的,不要因为水题就大意(虽然我也因此WA了一次),任何时间都要认真审题。
附上代码:

#include <iostream>
#include <string>
using namespace std;
int n,m;
struct pr
{
    int x;
    string name;
}st[100005];
int main()
{
    int c,w;
    cin>>n>>m;
    int ans=1;
    for(int i=1;i<=n;i++)
    {
        cin>>st[i].x>>st[i].name;
    }
    for(int j=0;j<m;j++)
    {
        cin>>c>>w;
        if(st[ans].x==0)
        {
            if(c==1)
                ans=(ans+w)%n;
            else
                ans=(ans+n-w)%n;
        }
        else
        {
            if(c==1)
                ans=(ans+n-w)%n;
            else
                ans=(ans+w)%n;
        }
        if(ans==0)ans=n;
    }
    cout <<st[ans].name<< endl;
    return 0;
}

欢迎评论!

猜你喜欢

转载自blog.csdn.net/wjl_zyl_1314/article/details/82778281