题目链接:C - Not so Diverse
题意:你有(n)个球,每一个球上有一个数字(a_i),要求不同数字总数不超过(k)个,求最少要修改多少个数。
题解:一道很明显的贪心题,因为我们如果要修改数字的话,肯定是把相同的数字都修改了,那么修改那些呢?肯定是最少的那些,思路便出来了。至于怎么知道数量,因为我们不需要知道具体数字,所以可以用桶。
代码:
#include <cstdio>
#define ll long long
#define Maxn 200000
int a[Maxn+5];
bool cmp(int a,int b){
return a>b;
}
int main(){
int n,k,x;
scanf("%d%d",&n,&k);
for(int i=1;i<=n;i++){
scanf("%d",&x);
a[x]++;
}
int ans=0;
for(int i=k;i<=n;i++){
ans+=a[i];
}
printf("%d
",ans);
return 0;
}