有时我会在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;
任何人都可以解释一下背后的原因吗?
答案 0 :(得分:0)
许多程序员实际上都有预定义的竞赛模板。在代码强制上,通常,他们只需将该模板复制到文件中,然后再读取他们想要编码的问题,然后编写代码。
这一堆代码实际上是Java的快速输入。代码强制中的一些问题需要这样做。 Petr必须复制他通常的模板并在那里编码那个问题,即使它没有必要。 Petr专门为此问题编写的实际代码是名为Solve
的3行函数。