退役啦……

正式结束NOIP生涯。
附上一个缺陷算法,求原因。

#include<cstdio>
#include<algorithm>
#include<iostream>
#include<cmath>
#include<cstring>
using namespace std;
int n,m;
int face[100002];
char name[100002][11];
char temp;
int tempa,tempb;
int now=1;
int outputstring(int a)
{
    //输出函数 
    for(int i=1;i<=11;i++)
    {
        if(name[a][i])printf("%c",name[a][i]);
        else return 0;
    }
    return 0;
}
int toymove(int b1)
{
    //移动
    int temp1=now+b1;
    while(temp1<=0)temp1+=n;
    return temp1%n;
} 
int main()
{
    //freopen("toy.in","r",stdin);
    //freopen("toy.out","w",stdout);
    scanf("%d%d",&n,&m);
    for(int i=1;i<=n;i++)
    {
        scanf("%d",&face[i]);
        int j=1;
        /*while(cin>>temp)
        {
            if(temp=='\n' || temp=='\r' || temp==1 || temp==0)break;
            else
            {
                name[i][j]=temp;
                j++;
            }
        }*/
        scanf("%s",&name[i][1]);    
    }
    for(int i=1;i<=m;i++)
    {
        scanf("%d%d",&tempa,&tempb);
        if(face[now]==0 && tempa==0)now=toymove(-tempb);
        else if(face[now]==0 && tempa==1)now=toymove(tempb);
        else if(face[now]==1 && tempa==0)now=toymove(tempb);
        else if(face[now]==1 && tempa==1)now=toymove(-tempb);
    }
    outputstring(now);
    printf("\n");
    return 0;
}

留下你的评论呗...

电子邮件地址不会被公开。 必填项已用*标注