zzzYheng's blog

Blogs

建议开放 QOJ5111 Hack

2025-05-09 08:32:25 By zzzYheng

貌似有一些 AC 的代码可以被 Hack。

比如 https://qoj.ac/submission/217760 可以被如下数据 Hack:

input:
11
2 3 2
3 7 6 5
2 8 4
3 11 10 9
0 1 0
0 1 0
0 1 0
0 0 0
0 1 0
0 1 0
0 1 0

output:
0

answer:
4

https://qoj.ac/submission/354471https://qoj.ac/submission/361935 可以被如下数据 Hack:

input
11
2 2 3
3 5 6 7
2 4 8
3 9 10 11
0 0 1
0 0 1
0 0 1
0 0 0
0 0 1
0 0 1
0 0 1

output:
0

answer:
4

原理大概是如果实现中切第一条线是确定的非特殊斜率,那么可以直接造一排这个斜率的点,然后就会切到两个随机点上,并且之后无法切到任何别的点。

正确的实现应该在切第一条线时使用双关键字 checkmax,这样能保证切到两个凸包端点,简单的实现方法是将切第一条线时的方向向量设为 (,1)

zzzYheng Avatar