我的代码适用于小型测试用例但显示
IndexError:不能使'long'适合索引大小的整数
当我使用大号时。
global mod
mod = 1000000007
global lim
lim = 10010
global cnt
cnt = [[None for x in range(0,4)] for x in range(0,lim+1)]
def precomp():
cnt[2][0] = cnt[2][1] = cnt[2][2] = 1
for i in range(3,lim):
cnt[i][0] = cnt[i-1][2] % mod
cnt[i][1] = cnt[i-1][0] % mod
cnt[i][2] = (cnt[i-1][2] + cnt[i-1][1]) % mod
t = input()
precomp()
for iterate in range( t ):
n = long(raw_input())
print long((cnt[n][0] + cnt[n][1] + cnt[n][2]) % mod)
当我用以下输入测试案例时:
2
2
3
但是当我使用以下输入时:
3
28488106923106212
18451226948892907
5082944357138639
显示错误。我可以设置2D列表大小的其他方法是什么,或者可以克服这个错误?通过改变(0,4)的范围不给出错误但是花费很长时间。