1. 程式人生 > >【luogu1563】【niop2016】玩具謎題

【luogu1563】【niop2016】玩具謎題

get line 水題 tchar 單身 pan dig amp 如果

luogu1563

快樂刷水題誒嘿嘿嘿技術分享圖片

是逆時針方向!!!朝內是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 }

【luogu1563】【niop2016】玩具謎題