← 完整题目索引

PROJECT EULER · #0150

子三角形之和

Sub-triangle Sums

仅题目 · 已解决原题 ↗

在一个正整数和负整数组成的三角数组中,我们希望找到一个子三角形,使得它所包含的数字之和尽可能最小。

在下面的例子中,可以很容易地验证标记的三角形满足这个条件,总和为-42。

我们希望制作这样一个包含一千行的三角数组,因此我们使用一种随机数生成器(称为线性同余生成器)生成 500500 个范围为 ±219 的伪随机数 sk,如下所示:

t := 0
对于 k = 1 至 k = 500500:
t := (615949*t + 797807) 模 220
sk := t−219

因此:s1 = 273519,s2 = −153582,s3 = 450905等

然后使用伪随机数形成我们的三角数组:

s1
s2  s3
s4  s5  s6
s7  s8  s9  s10
...

子三角形可以从数组的任何元素开始,并向下延伸到我们想要的程度(从下一行开始直接在它下面的两个元素,从下一行开始直接下面的三个元素,依此类推)。
"子三角形之和"被定义为它包含的所有元素的总和。
找到尽可能小的子三角形和。

题解待补充

这道题的题目已收录,解题思路、代码和答案将在后续补充。