子阵列

时间:2018-03-06 15:42:30

标签: java

我正在尝试使用java来理解问题并解决它。

但首先我无法正确理解。

以下是问题:

给出一个长度为n且整数为c的数组a。

长度为k的某个数组b的值是除最小值之外的元素之和。例如,c = 2的数组[3,1,6,5,2]的值为3 + 6 + 5 = 14.

在连续子阵列的所有可能分区中输出这些子阵列的值的最小可能总和。

Input
The first line contains integers n and c (1 ≤ n, c ≤ 100 000).

The second line contains n integers ai (1 ≤ ai ≤ 109) — elements of a.

Output
Output a single integer  — the smallest possible sum of values of these subarrays of some partition of a.


Examples
inputCopy
3 5
1 2 3
output
6
inputCopy
12 10
1 1 10 10 10 10 10 10 9 10 10 10
output
92
inputCopy
7 2
2 3 6 4 5 7 1
output
17
inputCopy
8 4
1 3 4 5 5 3 4 1
output
23

在第三个例子中,最佳分区之一是[2,3],[6,4,5,7],[1],其值分别为3,13和1。

我的理解:

1)分区正在连续数字内完成。正确吗?

2)输入中Integer c的意义是什么?

3)第三个例子是如何完成的?我的意思是在有了子阵列之后,How 13从第二个子阵列出来了吗?

任何人都可以帮我理解这个问题吗?我自己可以编写代码。

0 个答案:

没有答案