90分,求大犇帮帮,QAQ

P1563 [NOIP2016 提高组] 玩具谜题

### 因为你下标是从1开始的,取模后的范围是 [0,n-1]而不是[1,n]。这里特判下当num为零时,令其等于n。我一开始也是因为这样子90分.. ``` #include<bits/stdc++.h> using namespace std; const int N=1e5+10; int n,m; int dict[N]; string name[N]; int main() { cin>>n>>m; for(int i=1;i<=n;i++) cin>>dict[i]>>name[i]; int flag=1; for(int i=1;i<=m;i++) { int a,b; cin>>a>>b; if( a==dict[flag] ) //顺时针 { flag = (flag + n - b) % n; } else //逆时针 { flag = (flag + b) % n; } if( !flag ) flag=n; } cout<<name[flag]; return 0; } ```
by xbm0404 @ 2023-07-28 20:35:01


@[xbm0404](/user/687751) 哇,确实啊,谢谢dalao.
by liang_carry @ 2023-08-10 10:43:08


|