• 微信公众号:美女很有趣。 工作之余,放松一下,关注即送10G+美女照片!

P1563 [NOIP2016 提高组] 玩具谜题

开发技术 开发技术 2周前 (04-08) 8次浏览

吐槽

花费了好久好久,发现在以下地方出错

首先虽然我们定义了是从1开始,但是push时,却是从0开始

其次,在index±n的地方出错,应该是<=0时需要+n,大于n的时候-n。

需要注意就是搞清楚什么时候加,什么时候减。

题目

https://www.luogu.com.cn/problem/P1563

 

 

#include<bits/stdc++.h>
using namespace std;
struct node{
    int face;
    char name[15];
};
int main()
{
    vector<node> v;
    int n,m;
    cin>>n>>m;
    node temp;
    temp.face=100;
    v.push_back(temp);
    for(int i=1;i<=n;i++){
        node d;
        cin>>d.face>>d.name;
        v.push_back(d);
    }
    int index=1;
    for(int i=1;i<=m;i++){
        int a,b;
        cin>>a>>b;
        if(v[index].face==0){
            if(a==0){
                index-=b;
                if(index<=0)     index+=n;
            }else{
                index+=b;
                if(index>n)     index-=n;
            }
        }
        else{
            if(a==1){
                index-=b;
                if(index<=0)     index+=n;
            }
            else{
                index+=b;
                if(index>n)     index-=n;
            }
        }   
    }
    cout<<v[index].name<<endl;
    return 0;
}

 


程序员灯塔
转载请注明原文链接:P1563 [NOIP2016 提高组] 玩具谜题
喜欢 (0)