#4WA,求大佬救一下

P1563 [NOIP2016 提高组] 玩具谜题

首先m,n可以直接用cin/scanf来读取,不需要字符串转数字。 其次有可能在一轮循环中出现answer<-m的情形。比如:如果一共三个人,我要往左走八个,此时answer = -8,answer+3 = -5。所以应该把 ``` if(answer<0)answer+=n; ``` 改为 ``` while(answer<=0)answer+=n; ``` 另外编号从1开始,因此编号为0时就已经越界了。 还有一个技巧,就是用 ``` if(right xor face[i]){ direction = 1; } else{ direction = -1; } ``` 这样可以节约代码行数\ 其中xor意为异或,真值表为: ``` //T T = F //F F = F //T F = T //F T = T ```
by chenmo2008 @ 2023-09-06 23:16:16


|