我们获得n
段 - 每个段都有一定的长度。所有这些细分都构成了一根棍子。我们只能在某些部分之间打破这一点。
现在我们想知道有多少分为三个部分,形成一个三角形。所以我们在两个地方打破棍子,将每个部分的段长度相加,然后检查它们是否形成三角形。
例如:对于长度为6
的{{1}}段,我们可以形成两个三角形1 2 3 4 5 6
或1 2 3 | 4 5 | 6
。
对于1 2 3 4 | 5 | 6
段:8
,可以有1 1 2 3 5 8 13 21
个三角形。
我需要在最佳时间复杂度下计算这些三角形的数量。我想做一些部分和然后二元搜索?但不确定细节。
感谢您的帮助。