题目链接:https://codeforces.com/contest/1011/problem/B
题型:枚举
题意:有n个人,m个食物,给出m个食物的各自种类(a[m])。每人每天吃一个食物,且一个人永远都只能吃一种食物,求最大可支持的天数
题解:按天枚举最多支撑的人数
第i种食物如果支持day天,最大支持a[i]/day;
num=∑i=1ma[m]/day
n
u
m
=
∑
i
=
1
m
a
[
m
]
/
d
a
y
从day=1开始枚举,如果num
import java.util.*;
public class B {
public static void main(String[] args) {
Scanner kb = new Scanner(System.in);
int n=kb.nextInt();
int m=kb.nextInt();
int a[]=new int[101];
int b[]=new int[n+1];
for(int i=0;i<m;i++) {
a[kb.nextInt()]++;
}
if(n>m) {
System.out.println(0);
return;
}
Arrays.sort(a);
for(int i=a.length-1,j=0;i>a.length-1-n;i--,j++) {
b[j]=a[i];
}
int day=0;
day++;
for(day=1;;day++) {
int sum=0;
for(int i=0;i<n;i++) {
sum+=b[i]/day;
}
if(sum<n)break;
}
System.out.println(day-1);
kb.close();
}
}