腾讯第二题红花白花,超时统统会变成case通过率0%吗?

Python:如果不是想知道我的代码有啥问题,我自己在IDE上跑的还行啊

t,k = list(map(int,input().split()))
res = []
import math
def comb(n,m):
    return math.factorial(n)//(math.factorial(n-m)*math.factorial(m))
for i in range(t):
    a,b = list(map(int,input().split()))
    c = 0
    for j in range(a,b+1):
        d = j//k
        if d==0:
            c+=1
        else:
            for h in range(d+1):
                if h == 0:
                    e = 1
                elif j-h*k == 0:
                    e = 1
                else:
                    e = comb(j-h*k+h,h)
                c+=e
    res.append(int(c))
for m in range(len(res)):
    print(res[m])


#腾讯##笔试题目#
全部评论
求大佬指点一下~~
点赞 回复 分享
发布于 2019-09-01 22:21
可能是第一个case就超了吧
点赞 回复 分享
发布于 2019-09-01 22:24
组合数计算复杂度太高,我改成递归过了百分之10
点赞 回复 分享
发布于 2019-09-01 22:26
本地跑的ok,oj超时,到最后我才看到说要取模..在哪通知的..
点赞 回复 分享
发布于 2019-09-01 22:29
你把数取到10万本地跑试试,题目a,b上限是10万
点赞 回复 分享
发布于 2019-09-01 22:33

相关推荐

评论
点赞
3
分享
牛客网
牛客企业服务