我正在尝试解决Codechef中的this问题。现在根据问题,如果有10个房子,他可以通过选择3个连续房屋,或4个,5个,......或10个错误。现在选择m
连续房屋的方式数量n
房屋为n-m+1
。因此,我必须将n-m+1
与m
相加,从3开始到n
。也就是说,我将n-2
,n-1
中的数字添加到1.在AP中,数值应为((n-2)(n-1))/2
(通过公式n(n+1)/2
)。这就是这段代码的作用。但是我得到了错误的答案消息。我在哪里犯错? pow
用于进行模幂运算,因此数字在任何阶段都不会超出范围。
testcase = int(raw_input())
m = 10**9 + 7
for i in xrange(0,testcase):
n = int(raw_input())
ans = ((pow(n,2,m)-3*n+2)/2)%m
print ans
答案 0 :(得分:2)
你也算这个案子吗?
( * * * * * * * * * * )
^ ^ ^ ^ ^ ^
这只是一个我相信你跳过的例子。 (如果我确实正确地遵循了你的算法)
这只是一个暗示虽然要求跑步比赛问题根本不行。