CHD's blog

Blogs

关于#7139的 val(以及 hack 功能)

2025-11-10 21:14:51 By CHD

这里先不讨论本题 hack 中出现 Standard Program Time Limit Exceeded 和 Standard Program Runtime Error 的现象。(因为说不定 hack 数据根本不合法)

我觉得比起这题本身的做法,更值得令人注意的是“如何判定一个输入合法”。

首先给出:这题的 val 是有问题的。

比如这样一组数据:

5 1
4 2 3 4 5
2 4 1
2 5 1
2 1 2
2 1 3
? 1 2

图画出来是这样的:(本题输入规定,按照顺时针输入邻居,所以不能把 3 转到 4 的右边)

图

明显看出这是有交叉的,而且无论怎样调整都是有交叉的。

然而当我尝试提交这组数据,发现居然没有 Invalid Input

所以这个 val 该怎么写?(还是说根本就写不了?)

Comments

Qingyu
Hm,validator应该根本没有判这个,我先把hack禁用了。(也许……cc一下,ftiasch ?)
  • 2025-11-10 22:41:53
  • Reply
ftiasch
hmm...我想我 10 年前应该没考虑这事( 首先题目 / 做法应该是没问题的...我实际上想说的是 给出一个平面图,和一个它的嵌入. 上面给出的数据确实是平面图,但是嵌入给错了...当然我没有在 val 里面判给定嵌入是否合法。 这个应该也不是太难...就是把 std 扣面的逻辑拷贝过来,比如说上面你的例子,(如果我没算错),会得到 (3, 5), (5, 1), (1, 2), (2, 4), (4, 1), (1, 5), (5, 1) 这个 "面",很明显是非法的。
  • 2025-12-02 12:01:34
  • Reply

Post a comment

You can refer to mike by using "@mike", and "mike" will be highlighted. If you want to type the character "@", please use "@@" instead.

You can enter "/kel" to use the emoticon "kel".