【发布时间】:2015-03-03 13:58:25
【问题描述】:
我们有一根 S 厘米长的棍子。它只能在某些位置被打破。我们要计算 GOOD Pairs 的数量。满足以下条件
- 好的一对由 2 个不同的位置组成,在这些位置可以折断棍子。
- 当木棍在这两个位置断裂时,至少应有一根长度严格大于 L 的木棍。
现在给定 S,棍子的长度设为 10,总数。可以折断棍子的位置 N(比如 3)。设点为 [1,3,9] 。让 L 为 5 那么这里的答案是 3
Pair 1 : [1,9]
Pair 2 : [1,3]
Pair 3 : [3,9]
如果我们在任何一对上切割,那么它们的长度总是大于 L。
我只需要数数对。我们不能每个 N^2 对都去。我认为他们必须是一些 DP 方法。请帮忙解决这个问题
约束:
3<=S<=5*10^4
2<=N<= MIN(S-1,10^4)
0<=L<=S-1
All Array element are distinct and 1<=A[i]<=S-1.
【问题讨论】:
标签: algorithm dynamic-programming