公寓
时间限制:1秒 内存限制:256M
【题目描述】
一座新的公寓开放了,这座公寓有\(m\)栋楼。
现在会有\(n\)个学生,每一天都会进来一个人。
一栋楼进来一个人后,该栋楼内的人会共同进行一场派对,并制造与当前人数相等的吵闹指数。
但是,现在你可以进行\(k\)次操作,每一次操作可以将一栋楼里的全部学生清除出这座新公寓,即把公寓人数清 0。
请注意,学生先进楼,然后才能进行操作。
现在求出吵闹指数的相加之和的最小值。你不必使用完全部的操作。
【输入格式】
第一行为三个整数 \(n,m,k\)。
接下来\(n\)行,一行一个整数\(p\),第\(i\)行表示在第\(i\)天,第\(i\)个同学搬进了第\(p\)栋楼。
【输出格式】
仅一行,表示最小吵闹指数的相加之和。
【输入输出样例1】
Input
5 1 2
1
1
1
1
1
Output
7
【样例1说明】
可以在第一天和第三天清空第一栋楼,这样每一天的吵闹指数为 1,1,2,1,2,如果不清空每一天的吵闹指数为 1,2,3,4,5。
【输入输出样例1】
Input
11 2 3
1
2
1
2
1
2
1
2
1
2
1
Output
18
【样例2说明】
在第四天和第八天清空第一栋楼,在第六天清空第二栋楼,这样每一天的吵闹指数为 1,1,2,2,1,3,2,1,1,2,2。
【测试点性质】
对于40%分的数据,保证 \(m=1\)。
对于60%分的数据,保证 \(n≤10^3\)。
对于80%分的数据,保证 \(n≤5*10^4\)。
对于100%的数据,保证 \(1≤n≤10^6,1≤m≤100,1≤k≤500,1≤p≤m\)。
【来源】
Mr.he
UVA12167