A93904.Alice 的分段游戏

普及+/提高

通过率:0%

时间限制:1.00s

内存限制:128MB

题目描述

给定一个长度为 nn 的序列 a1,a2,…,ana_1,a_2,\dots,a_n(元素为正整数)。你需要把它划分成恰好 kk 个连续非空段,设第 tt 段为区间 [Lt,Rt][L_t,R_t],并定义一段的代价为:

cost(L,R)=∑x(#{ i∈[L,R]∣ai=x }2).\mathrm{cost}(L,R)=\sum_{x}\binom{\#\{\, i\in[L,R]\mid a_i=x \,\}}{2}.

也就是说,在同一段中,每个数的出现次数为 cc 就会贡献 (c2)\binom{c}{2} 的代价。请最小化 kk 段代价之和:

min⁡∑t=1kcost(Lt,Rt),\min \sum_{t=1}^{k}\mathrm{cost}(L_t,R_t),

并输出该最小值。

输入格式

  • 第一行两个整数 n,kn,k。
  • 第二行 nn 个整数 a1,a2,…,ana_1,a_2,\dots,a_n。

输出格式

输出一个整数,表示最小总代价。

输入输出样例

  • 输入#1

    5 2
    1 2 1 2 1

    输出#1

    1
  • 输入#2

    6 3
    1 1 1 2 2 3

    输出#2

    1

说明/提示

数据范围

  • 1≤n≤2×1051\le n\le 2\times 10^5;
  • 1≤k≤min⁡(n,20)1\le k\le \min(n,20);
  • 1≤ai≤2×1051\le a_i\le 2\times 10^5;
  • 答案不超过 263−12^{63}-1(使用 64 位有符号整数即可)。

测试点与数据范围

测试点 规模约束
1∼61\sim 6 n≤2×104, k≤10n\le 2\times 10^4,\ k\le 10
7∼207\sim 20 n≤2×105, k≤20n\le 2\times 10^5,\ k\le 20

样例解释

  • 样例一 : 解释:一种最优分法是 [1,2,1] ∣ [2,1][1,2,1]\ |\ [2,1]。第一段中 11 出现 11 次贡献 11,第二段中没有重复对,总代价为 11。

  • 样例二: 解释:可分为 [1,1] ∣ [1,2] ∣ [2,3][1,1]\ |\ [1,2]\ |\ [2,3],总代价 11。

输入解题思路,AI测评打分。不知道怎么写?

首页