我在 codechef.com 上一直在努力解决这个练习问题一段时间。我终于能够提出一个可行的解决方案。
import sys
def p():
numbers, div = map(int,sys.stdin.readline().split())
ans = 0
for i in xrange(numbers):
if int(sys.stdin.readline()) % div == 0:
ans += 1
i += 1
print ans
p()
但这在 43.60 中执行,如此处所示。它比给定的最佳解决方案差得多。他们都在使用不适用于 Python 2.7 的 psyco 模块。
Python 2.7 中是否有一些更快的 IO 方法可以提高这个实践问题的时间效率以及需要大量输入的一般编程问题?还请考虑可能会增加内存使用以获得所需时间效率的情况。
编辑:
此问题不需要更快的浮点数 IO,但其他问题可能需要更快的 IO,因此也为他们提出一些建议。
编辑2:
nums = int(sys.stdin.readline())
float_nums = map(float,next(sys.stdin).split())
for p in islice(sys.stdin, float_nums, None):
我正在使用类似上面的东西与@Martijn Pieters 一起使用浮点数的答案。我没有使用xrange()