目录
1、牛的学术圈(USACO 2021 US Open Bronze)
5、日志统计(第九届蓝桥杯 省赛 C++/JAVA B组 )
1、牛的学术圈(USACO 2021 US Open Bronze)
输入格式
输出格式
数据范围
输入样例1:
4 0
1 100 2 3
输出样例1:
2
样例1解释
输入样例2:
4 1
1 100 2 3
输出样例2:
3
样例2解释:
**思路:
先排序,然后我们可以发现单调性,数组越往后数组下标越大,h指标越小
我们利用这个单调性可以先用for -- while循环先写出一个双指针算法求出>=h的最后一个数,
然后找出>=h-1的数,给其分配1(每个论文最多引用一次),让其变为h来增大h指标,如果h-1足够多,那就可以把L用完
最后得到的h就是最大指标
代码:
#include<bits/stdc++.h>
using namespace std;
int n,m;
const int N=1e5+5;
int a[N];
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
{
scanf("%d",&a[i]);
}
sort(a+1,a+n+1,greater<int>());
int h=0;
for(int i=1,j=n;i<=n;i++)
{
while(j && a[j]<i)j--;
if(a[i]>=i-1 && i-j<=m)
{
h=i;
}
}
cout<<h;
return 0;
}