2

我是一名 Java 程序员。我发现很多时候即使我的算法是正确的,我使用 codechef 提交的文件也会出现 Time Limit Exceeded。在编程竞赛中提交 Java 解决方案时,是否应该采用一些技术?

4

1 回答 1

6

在 CodeChef 上,所有 Java 提交的时间限制是其母语(例如,c/c++/pascal)对应的时间限制的 2 倍。但是,没有提到的一件事是,当内存消耗变高时,Judge 的行为开始变得非常缓慢,这在 Java 解决方案中经常发生。CodeChef 评委运行所有 Java 程序的内存设置为 64 MB。您应该尝试使用尽可能少的内存,并尝试使用 -Xms = 64 MB 在本地运行相同的解决方案。

增加的时间限制也可能是由于当程序的内存使用量接近允许的最大值(在本例中为 64 MB)时,JVM 调用垃圾收集器,该垃圾收集器非常密集地使用 CPU 并因此延迟程序执行。

于 2012-04-23T17:31:00.587 回答