2

在 CodeChef 的 3 月挑战赛中,“随机递减函数”问题的 Java 解决方案已被接受,耗时超过 30 秒,但给定的时间限制为 2 秒。这远远超过 Java 允许的两倍(四秒)。

4

1 回答 1

3

指定的时间限制仅适用于一个测试文件。有许多测试文件,您提交的最后时间是通过所有测试文件所需的总时间。

引用CodeChef 常见问题页面

我的提交显示的执行时间是什么意思?

CodeChef 可能会使用不同的输入文件多次测试您的代码。如果您的代码在每个输入文件的时间限制内给出了正确答案,则显示的执行时间是每个测试用例花费的总时间。

如果您的代码未正确传递输入文件,则时间限制将是所有输入文件的总时间,包括您失败的文件,但不包括任何其他文件。

一个例子:假设有 5 个输入文件,每个文件的时间限制为 2 秒。您的程序在每个输入文件上运行 1 秒钟并产生正确的答案。显示的总时间为 5 秒 - 这很好,因为时间限制仅适用于每个输入文件。

另一方面,假设前 2 个输入文件在 1 秒内正确,第三个在 1.5 秒内不正确。您报告的时间为 3.5 秒。

人们经常在很快改变到超出时间限制的时间内被错误的答案弄糊涂。这是因为第一个输入文件很小;错误答案意味着不包括大型输入文件的时间。

于 2014-01-13T08:26:34.320 回答