这是咋了,30分求助

P1563 [NOIP2016 提高组] 玩具谜题

回复一下自己吧,咋说呢,看了看别人代码以及讨论,懂了一点 ```cpp #include<iostream> #include<cstdlib> #include<ctime> #include<cstdio> #include<cmath> #include<string> #include<fstream> using namespace std; int main() { int m,n; bool fa[100004],fb[100004]; int renb[100004]; char rena[100004][11]; char em[11]={0000000000}; cin>>m>>n; int i; for(i=0;i<m;i++) { cin>>fa[i]; cin>>em; string q=em; for(int k=0;k<q.length();k++) { rena[i][k]=em[k]; em[k]='0'; } } for(i=0;i<n;i++) { cin>>fb[i]; cin>>renb[i]; } int qm=0; for(i=0;i<n;i++) { if(fb[qm]==0&&fa[qm]==0)qm-=renb[i]; else if(fb[qm]==1&&fa[qm]==0)qm+=renb[i]; else if(fb[qm]==0&&fa[qm]==1)qm+=renb[i]; else qm-=renb[i];//这里用elseif,不然可能值会变化...就错在这里了,但还是有问题,请指正 if(qm<0) qm=m+qm; if(qm>=m) qm=qm-m; } //cout<<qm; for(i=0;rena[qm][i]!=0||i<10;i++) cout<<rena[qm][i]; return 0; } ```
by Yzmddsw @ 2021-11-04 17:43:14


|