#P2072. 宗教问题

    ID: 1018 Type: RemoteJudge 1000ms 125MiB Tried: 0 Accepted: 0 Difficulty: 3 Uploaded By: Tags>动态规划,dp线性数据结构

宗教问题

题目背景

在一个地区有许多种宗教,不同信仰的教徒经常发生矛盾,最为治安管理的人需要把这些人分开,以免矛盾激化。

题目描述

已知一个地方有 MM 种宗教(编号为 1M1\sim M),有 NN 个教徒(编号为 1N1\sim N),每个教徒信且只信一种宗教。

现在要按顺序把这 NN 个教徒分成一些集体,每个集体的危险值定义为这个集体中的宗教种数,且一个集体的宗教种类不能超过 KK 种,否则就会无限危险。

问题:

  1. NN 个教徒至少要分为几个集体?
  2. 这些集体的危险值总和至少为多少?

输入格式

第一行三个正整数 N,M,KN,M,K,以空格隔开。

第二行 NN 个正整数,为每个教徒信的宗教编号。

输出格式

第一行一个正整数,为最少集体数。

第二行一个正整数,为最小危险值。

10 4 3
1 2 3 4 3 4 3 2 1 2

3
6

提示

【样例解释】

一种最优的划分方案为:

[1,2,3]  /  [4,3,4,3,2]  /  [1,2][1,2,3]\ \ /\ \ [4,3,4,3,2]\ \ /\ \ [1,2]

【数据范围】

对于 20%20\% 的数据,N20N \le 20

对于 50%50\% 的数据,N100N \le 100

对于 100%100\% 的数据,1N10001 \le N \le 10001K<M201 \le K < M \le 20