CF1527E.Partition Game

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

You are given an array aa of nn integers. Define the cost of some array tt as follows:

$$cost(t) = \sum_{x \in set(t) } last(x) - first(x), $$ </p><p>where $set(t)$ is the set of all values in $t$ without repetitions, $first(x)$ , and $last(x)$ are the indices of the first and last occurrence of $x$ in $t$ , respectively. In other words, we compute the distance between the first and last occurrences for each distinct element and sum them up.</p><p>You need to split the array $a$ into $k$ consecutive segments such that each element of $a$$$ belongs to exactly one segment and the sum of the cost of individual segments is minimum.

输入格式

The first line contains two integers nn , kk ( 1n350001 \le n \le 35\,000 , 1kmin(n,100)1 \le k \le \min(n,100) ).

The second line contains nn integers a1,a2,,ana_1, a_2, \ldots, a_n ( 1ain1 \le a_i \le n ).

输出格式

Output the minimum sum of the cost of individual segments.

输入输出样例

  • 输入#1

    7 2
    1 6 6 4 6 6 6

    输出#1

    3
  • 输入#2

    7 4
    5 5 5 5 2 3 3

    输出#2

    1

说明/提示

In the first example, we can divide the array into [1,6,6,4][1,6,6,4] and [6,6,6][6,6,6] . Cost of [1,6,6,4][1,6,6,4] will be (11)+(32)+(44)=1(1-1) + (3 - 2) + (4-4) = 1 and cost of [6,6,6][6,6,6] will be 31=23-1 = 2 . Total cost would be 1+2=31 + 2 = 3 .

In the second example, divide the array into [5,5],[5],[5,2,3][5,5],[5],[5,2,3] and [3][3] . Total Cost would be 1+0+0+0=11 + 0 + 0 + 0 = 1 .

首页