CF1355B Young Exporers(思维)
题意:
给出一些人,他们有各自的害怕程度,害怕程度为k的人所属的团队人数必须大于等于k,请你分尽可能多的组,不一定所有人都要有组。
题解:
贪心的做法,每种人的人数除k,同时把余数给下一组人。
#include<bits/stdc++.h> using namespace std; const int maxn=3e5+100; int T; int N; int a[maxn]; int main () { scanf("%d",&T); while (T--) { scanf("%d",&N); for (int i=1;i<=N;i++) a[i]=0; for (int i=1;i<=N;i++) { int x; scanf("%d",&x); a[x]++; } int ans=0,pre=0; for (int i=1;i<=N;i++) a[i]+=pre,ans+=(a[i])/i,pre=a[i]%i; printf("%d\n",ans); } }