zoukankan      html  css  js  c++  java
  • CF1358B Maria Breaks the Selfisolation

    题目链接

    题意

    这是一个集会,最开始只有你一个人。

    你邀请了 \(n\) 个人来参加集会,每个人有一个 \(a_i\) ,如果你要求这个人 \(t\) 时刻过来,那么必须满足 \(t\) 时刻以及 \(t\) 时刻之前来的人的个数 \(\geq a_i\) (注意对于这个人数的计算,包括你自己,但是对于 \(i\) 来说,不包括他)

    求出最多有多少个人能来集会。

    题解

    • 先对a数组排序
    • 记当前已经在集会中的人数为cnt,当前待参加集会的人数为wait,对每一个a[i],若cnt+wait >= a[i],则满足条件,集会中的人数增加a[i]+1个人;若不满足条件,则等待人数加一
    const int N=1e5+10;
    int a[N];
    int n;
    
    int main()
    {
        int T;
        cin>>T;
        while(T--)
        {
            cin>>n;
    
            for(int i=0;i<n;i++) cin>>a[i];
    
            sort(a,a+n);
    
            int cnt=1,wait=0;
            for(int i=0;i<n;i++)
            {
                if(cnt+wait >= a[i])
                {
                    cnt+=wait+1;
                    wait=0;
                }
                else wait++;
            }
    
            cout<<cnt<<endl;
        }
        //system("pause");
    }
    
  • 相关阅读:
    ble_app_hrs心率程序 nrf51822
    2019.05.08 《Linux驱动开发入门与实战》
    函数指针
    typedef
    回调函数
    android2
    android1
    每周总结2
    HTML
    数组(续)
  • 原文地址:https://www.cnblogs.com/fxh0707/p/13585940.html
Copyright © 2011-2022 走看看