提供一组 ISAP 的 hack
查看原帖
提供一组 ISAP 的 hack
677124
picha楼主2023/3/29 22:17

hack 数据:

input:\texttt{input:}

7 8 1 7
1 2 1
1 3 1
2 4 1
3 4 1
4 7 1
4 5 1
5 7 1
4 6 2147483647

output:\texttt{output:}

2

wrong output:\texttt{wrong output:}

1

这个 hack 数据能 hack 掉每次通过寻找出边中深度的最小值并更新该点的深度,且汇点的深度初始设为 00 ,且没有判该点能否走到汇点的写法,如 我的提交记录。但是题解里面都写的是给该点的深度加 11 的写法,所以 hack 不掉题解……

hack 的原理:第一次,从 11 出发沿着 1341 \rightarrow 3 \rightarrow 41241 \rightarrow 2 \rightarrow 4 中的一条路径走到 44,并给 77 传输 11 的流量。此时该点流量已经用完,于是更新深度,66 号点的深度为 1-1,于是把 44 号点的深度更新为 1+1=0-1 + 1 = 0

第二次,从 11 出发沿着 1341 \rightarrow 3 \rightarrow 41241 \rightarrow 2 \rightarrow 4 中的另一条路径走到 44,由于 44 号点的深度为 0077 号点的深度为 0055 号点的深度为 11,所以只能向 66 号点传输 11 的流量,但是 66 号点无法到达汇点,不会计入答案。

综上,我的程序会输出 11,但是正确答案是 22

解决方法很简单,要么使用每次将深度加 11 的写法,要么判断一下,禁止跑到无法到达汇点的点即可。

申请管理员将该 hack 数据加入测试数据。

为方便大家,把代码放到二楼。

2023/3/29 22:17
加载中...