Codeforces Round #643 (Div. 2) B. Young Explorers 题解(贪心)

题目链接

题目大意

每个人都有一个缺乏经验值,值为ei的人只能加入大于等于ei个人的团,求最多能组成多少个团,有的人可以不用组团

题目思路

其实就是一个简单贪心,我好菜啊qwq,这都不会写,直接看代码吧

代码

#include
#include
#include
#include
using namespace std;
typedef long long ll;
const int maxn=3e5+5;
int t,n,a[maxn];
int main(){
    scanf("%d",&t);
    while(t--){
        int ans=0;
        scanf("%d",&n);
        for(int i=1;i<=n;i++){
            scanf("%d",&a[i]);
        }
        sort(a+1,a+1+n);
        for(int i=1,cnt=0;i<=n;i++){
            if(++cnt>=a[i]){
                cnt=0;
                ans++;
            }
        }
        printf("%d\n",ans);
    }
    return 0;
}

你可能感兴趣的:(贪心)