同问
by YTUGGBOY @ 2022-08-12 09:56:25
@[Alpex](/user/664620) 你现在解决那个多加一的问题了吗
by YTUGGBOY @ 2022-08-12 09:57:14
没有
by Alpex @ 2022-08-12 10:22:08
@[Alpex](/user/664620)
首先,请看这组hack
```
1
9 17
```
显然,正确走法是9-18-17(2步)但输出为三。
其原因是代码第29行
`if(temp<0||temp>T)continue;`
其中的`temp>T`
使得程序中temp无法先进后退,所以运算为9-8-16-17(3步)
解决方法可以将29行改为 `if(temp<0||temp>T*2)continue;`
最后,会发现#7出现WA是因为有可能出现一下情况
```
1
1145 14
```
其中S还未开始BFS扩展队列就结束了,于是加上特殊判断
```
if(S>T){cout<<S-T;continue;}
```
理由:因为当FJ比奶牛的坐标大时,只能一步一步挪回去,所以输出S-T。
by donyking @ 2022-08-13 11:11:52
@[YTUGGBOY](/user/747505)
by donyking @ 2022-08-13 11:12:07
@[donyking](/user/577384)
懂了,谢谢神犇
by Alpex @ 2022-08-14 10:10:08