【发布时间】:2013-10-28 07:18:54
【问题描述】:
我正在尝试以下 SPOJ 问题。我想澄清一下,我不需要解决这个问题,这就是为什么我没有将此问题标记为“算法”。
Multiply the given numbers.
Input
n [the number of multiplications <= 1000]
l1 l2 [numbers to multiply (at most 10000 decimal digits each)]
Output
The results of multiplications.
Time Limit: 2 seconds.
我有一个简单的解决方案 O(n^2),这是我们在学校学习的方式(将输入读取为字符串并进行逐字符乘法)。我知道我可以通过 Karatsuba 方法进一步优化它。
问题:
我现在的代码是 C++。我在互联网上读到通过scanf 阅读比cin 更快。鉴于输入大小如此之大,在这种情况下会产生显着差异吗?
如果我不想将 C 与 C++ 混合使用,那么任何关于如何改进输入流的想法都会非常有帮助。
谢谢
【问题讨论】:
-
要记住的是,像 SPOJ 这样的网站上的问题很少适用于现实世界的问题。为了成功地为这些网站制作程序,你必须做一些“黑客”,如果在现实世界的应用程序中使用它们会被忽视。
-
至于这个具体案例,你确定瓶颈是输入,而不是实际计算?
-
@JoachimPileborg 老实说,我不确定。但是,我发布这个问题也是为了帮助我将来参考。