为什么人们在竞争性编程中使用这么多代码来编写解决方案

时间:2016-10-25 13:33:16

标签: java solution

有时我会在codeforces.org'中解决问题。在每次解决之后,我都会看到其他人的解决方案。但是大多数其他解决方案都包含很多代码。 例如: 我已经为问题Domino Piling编写了一个代码,如下所示。

template <typename T>
    static void translateMod(cv::Mat& imgIn, cv::Mat& imgOut, int nb_pixels) {
            int w = imgIn.cols, h = imgIn.rows;
            if (nb_pixels >= w) nb_pixels = w;
            cv::Rect left(0, 0, w - nb_pixels, h);
            cv::Mat ROI = imgIn(left);
            cv::imshow("ROI", ROI);
        }

但在import java.util.*; public class Main{ public static void main(String[] args){ Scanner in = new Scanner(System.in); int m = in.nextInt(), n = in.nextInt(); int count = n*(m/2); if(m%2 == 1) count += n/2; System.out.println(count); in.close(); } } 排名第2的petr写了这个解决方案,如

codeforces

在这里我们看到他使用了线程和他自己的定制输入/输出技术。但我不明白为什么他这样解决了这个解决方案以及需要自己定制的i / o技术? 最让我印象深刻的一件事是,除了他的长代码,他的代码执行时间比我好。他的代码执行时间只有90毫秒&#39;而我的是248毫秒&#39;

任何人都可以解释一下背后的原因吗?

1 个答案:

答案 0 :(得分:0)

许多程序员实际上都有预定义的竞赛模板。在代码强制上,通常,他们只需将该模板复制到文件中,然后再读取他们想要编码的问题,然后编写代码。

这一堆代码实际上是Java的快速输入。代码强制中的一些问题需要这样做。 Petr必须复制他通常的模板并在那里编码那个问题,即使它没有必要。 Petr专门为此问题编写的实际代码是名为Solve的3行函数。