O(n*logn)复杂度的 import sys if __name__ == "__main__":     t,k=sys.stdin.readline().strip().split()     t,k=int(t),int(k)     for _ in range(t):         a,b=sys.stdin.readline().strip().split()         a,b=int(a),int(b)         times=0         count=0         for i in range(a,b+1):             white = 0             times=0             while white<=i:                 if white==0:                     count+=1                 else:                     count+=i-white+1                 times+=1                 white = times * k         print(count) 简化为O(n)的代码: import sys if __name__ == "__main__":     t,k=sys.stdin.readline().strip().split()     t,k=int(t),int(k)     for _ in range(t):         a,b=sys.stdin.readline().strip().split()         a,b=int(a),int(b)         count=0         for i in range(a,b+1):             n=i//k             count+=(1+n*i-(1+n)*n*k/2+n)         print(int(count)) 测试用例全过了,但是线上通过率0%。说循环有误或者算法复杂度过大。难道要O(1)的复杂度? 求大佬解答
点赞 评论

相关推荐

程序员牛肉:继续沉淀吧同学,你这就是纯纯的流水线产品。 差不多的学历+两个烂大街项目。自身学历又不行,现在找啥实习呢。有点太浮躁了。多花点心思搞搞ai,开源和八股。这比你这段时间捣鼓一段小厂实习要好得多;
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务