luogu1563

快乐刷水题诶嘿嘿嘿【luogu1563】【niop2016】玩具谜题 [模拟]

是逆时针方向!!!朝内是0,朝外是1,向左数是0,向右数是1

可以发现,如果为0 0或者1 1的情况时坐标都变为(cur+n-x)%n 然后0 1和1 0的情况时坐标变为(cur+x)%n

然后我们就可以用单身狗操作(并不)异或来判断

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 const int N=100100;
 4 char name[N][20];
 5 int cx[N],fx;
 6 
 7 inline int rd()
 8 {
 9     int w=0,x=0;char ch=0;
10     while(!isdigit(ch)) w|=ch=='-',ch=getchar();
11     while(isdigit(ch)) x=(x<<1)+(x<<3)+(ch^48),ch=getchar();
12     return w?-x:x;
13 }
14 int main()
15 {
16     int n,m;
17     scanf("%d%d",&n,&m);
18     for(int i=1;i<=n;i++)
19     scanf("%d%s",&cx[i],name[i]);
20     int cur=1,x;
21     for(int i=1;i<=m;i++)
22     {
23         scanf("%d%d",&fx,&x);
24         if(fx^cx[cur]) cur=(cur+x)%n;
25         else cur=(cur+n-x)%n;
26         if(cur==0) cur=n;
27     }
28     printf("%s",name[cur]);
29     return 0;
30 }

 

相关文章:

  • 2022-02-16
  • 2022-12-23
  • 2021-11-24
  • 2021-07-08
  • 2021-07-27
  • 2021-07-25
  • 2021-10-19
  • 2021-10-28
猜你喜欢
  • 2021-10-04
  • 2021-10-26
  • 2021-08-06
  • 2021-08-12
  • 2021-08-19
  • 2022-01-18
相关资源
相似解决方案