建议修改题目表述

P2385 [USACO07FEB] Bronze Lilypad Pond B

Flaw_Owl @ 2024-05-08 08:33:57

题目中关于贝西的移动描述是:

贝西的舞步很像象棋中的马步:每次总是先横向移动 M1 (1 ≤ M1 ≤ 30)格,再纵向移动 M2 (1 ≤ M2 ≤ 30, M1≠M2)格,或先纵向移动 M1 格,再横向移动 M2 格。最多时,贝西会有八个移动方向可供选择。

这里的表述明显将贝西的移动过程拆分成了两个独立的过程:即横向移动和纵向移动,那么如果从这个角度思考,如果贝西的中间移动过程踩到了非荷花的区域,那么贝西的整个移动过程是不成立的

程序语言的表述是:

if (a[newX][y] == 0 && a[x][newY] == 0)
    continue;

其中 a[][] 是地图,newXnewY 分别是跳跃后贝西新的坐标。

然而这样的考虑过程是错误的,会导致 RE,注释掉这两行之后能达到 AC。

我认为这主要是题目的表述问题。应当表达出“不考虑中间过程”的意思。


by Error_Eric @ 2024-05-08 08:48:25

@Flaw_Owl 虽然但是,这样子应该不会导致 RE 罢。检查一下越界检查在你注释掉的那一行的前面还是后面(?)。


by Error_Eric @ 2024-05-08 09:21:05

好吧如果这样子到不了终点确实可能在奇怪的代码处会导致 RE。忽略我前面那句话。


by Flaw_Owl @ 2024-05-08 09:33:46

@Error_Eric 雀氏 :(,我下了测试点之后发现第二个测试点就会因为没办法到达终点导致我的 BFS() 没有返回值而 R 掉。果然还是想太多了。


by Madokaaa @ 2024-12-24 11:23:31

雀食,整个题目透漏着一股诡异的气息,没有作用的岩石设定,歧义巨大的移动表述,还有小得令人怀疑的数据范围30


|