Codeforces Round 438 by Sberbank and Barcelona Bootcamp (Div. 1 + Div. 2 combined)
F
Yet Another Minimization Problem
Codeforces
2500
原题
← EG →
翻译中…

You are given an array of $*n*$ integers $*a*_{1}... *a*_{*n*}$. The cost of a subsegment is the number of unordered pairs of distinct indices within the subsegment that contain equal elements. Split the given array into $*k*$ non-intersecting non-empty subsegments so that the sum of their costs is minimum possible. Each element should be present in exactly one subsegment.

翻译中…

Input

翻译中…

The first line contains two integers $*n*$ and $*k*$ ($2 ≤ *n* ≤ 10^{5}$, $2 ≤ *k* ≤ *min* (*n*, 20))$  — the length of the array and the number of segments you need to split the array into.

翻译中…

The next line contains $*n*$ integers $*a*_{1}, *a*_{2}, ..., *a*_{*n*}$ ($1 ≤ *a*_{*i*} ≤ *n*$) — the elements of the array.

翻译中…

Output

翻译中…

Print single integer: the minimum possible total cost of resulting subsegments.

翻译中…

Note

翻译中…

In the first example it's optimal to split the sequence into the following three subsegments: $[1]$, $[1, 3]$, $[3, 3, 2, 1]$. The costs are $0$, $0$ and $1$, thus the answer is $1$.

翻译中…

In the second example it's optimal to split the sequence in two equal halves. The cost for each half is $4$.

翻译中…

In the third example it's optimal to split the sequence in the following way: $[1, 2, 2, 2, 1]$, $[2, 1, 1, 1, 2]$, $[2, 1, 1]$. The costs are $4$, $4$, $1$.

翻译中…

样例

Input #1
7 3
1 1 3 3 3 2 1
Output #1
1
InputCopy OutputCopy
Input #2
10 2
1 2 1 2 1 2 1 2 1 2
Output #2
8
InputCopy OutputCopy
Input #3
13 3
1 2 2 2 1 2 1 1 1 2 2 1 1
Output #3
9
InputCopy OutputCopy
题目信息
题号
868F
时间限制
2 s
内存限制
256 MB
标签
分治
动态规划

题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。