繁体   English   中英

动态规划,时间复杂度问题

[英]Dynamic programming, time complexity issue

我需要找到区间 [a,b] 中的所有数字,它们满足两个条件:

  • 可以被 k 整除
  • 数字的总和应该在区间 [c,d] 内
  • 1≤k≤10^11; (1 ≤ a, b < 10^11); (1 ≤ c, b ≤ 99)

(1 ≤ k ≤ 10^11) (1 ≤ a, b < 10^11)

幼稚的实现(即使有改进)太慢了。 有人可以帮助“动态”实现它吗? 或者一些有用的建议和链接? 我将不胜感激。

我不认为动态规划可以帮助你在这里。 第一个条件处理起来非常简单——您以 k 为步长迭代 [a,b] 范围。 所以复杂度是 O((ba)/k)。 至于第二个条件,您能否澄清其中的“b”是否与第一个条件中的“b”相同? 如果是这样,利用它是非常简单的,结果是一个元素或一个空列表。 所以复杂度是 O(1)。 如果“b”不同,我无法想象如何利用第二个条件改进 O((ba)/k) 。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM