当前位置: 首页 > news >正文

蓝桥杯每日一题:牛的学术圈I(二分,双指针)

由于对计算机科学的热爱,以及有朝一日成为 「Bessie 博士」的诱惑,奶牛 Bessie 开始攻读计算机科学博士学位。

经过一段时间的学术研究,她已经发表了 N篇论文,并且她的第 i 篇论文得到了来自其他研究文献的 ci次引用。

Bessie 听说学术成就可以用 ℎ 指数来衡量。

hℎ 指数等于使得研究员有至少 ℎ 篇引用次数不少于 hℎ 的论文的最大整数 hℎ。

例如,如果一名研究员有 4 篇论文,引用次数分别为 (1,100,2,3),则 hℎ 指数为 2,然而若引用次数为 (1,100,3,3) 则 hℎ 指数将会是 3。

为了提升她的 hℎ 指数,Bessie 计划写一篇综述,并引用一些她曾经写过的论文。

由于页数限制,她至多可以在这篇综述中引用 L篇论文,并且她只能引用每篇她的论文至多一次

请帮助 Bessie 求出在写完这篇综述后她可以达到的最大 hℎ 指数。

注意 Bessie 的导师可能会告知她纯粹为了提升 hℎ 指数而写综述存在违反学术道德的嫌疑;我们不建议其他学者模仿 Bessie 的行为。

输入格式

输入的第一行包含 N和 L。

第二行包含 N 个空格分隔的整数 c1,…,cn。

输出格式

输出写完综述后 Bessie 可以达到的最大 hℎ 指数。

数据范围

1≤N≤10^5,
0≤ci≤10^5,
0≤L≤10^5

输入样例1:
4 0
1 100 2 3
输出样例1:
2
样例1解释

Bessie 不能引用任何她曾经写过的论文。上文中提到,(1,100,2,3)的 hℎ 指数为 22。

输入样例2:
4 1
1 100 2 3
输出样例2:
3

如果 Bessie 引用她的第三篇论文,引用数会变为 (1,100,3,3)。上文中提到,这一引用数的 hℎ 指数为 3。

解题思路:

二分:

从0-n二分枚举每个h的值,取check:统计论文中>=h的个数为 a,和==h-1 的个数b;

检查a+min(L,b)是否>=h

#include <iostream>
#include <cstring>
#include <algorithm>using namespace std;
const int N = 1e5+10;
int w[N];
int n,L;bool check(int mid)
{int a = 0,b = 0;for(int i=0;i<n;i++){if(w[i]>=mid) a++;if(w[i]==mid-1) b++;}return a + min(L,b) >= mid;
}int main()
{cin>>n>>L;for(int i=0;i<n;i++) cin>>w[i];int l = 0,r = n;while(l<r){int mid = l + r + 1 >> 1;if(check(mid)) l = mid;else r = mid - 1;}printf("%d\n",r);return 0;
}

双指针:

#include <iostream>
#include <cstring>
#include <algorithm>using namespace std;const int N = 100010;int n, L;
int w[N];int main()
{scanf("%d%d", &n, &L);for (int i = 1; i <= n; i ++ ) scanf("%d", &w[i]);sort(w + 1, w + n + 1, greater<int>());int res = 0;for (int i = 1, j = n; i <= n; i ++ ){while (j && w[j] < i) j -- ;if (w[i] >= i - 1 && i - j <= L)res = i;}printf("%d\n", res);return 0;
}作者:yxc
链接:https://www.acwing.com/activity/content/code/content/7939954/
来源:AcWing。

http://www.lryc.cn/news/333500.html

相关文章:

  • fping命令
  • 奇富科技推出新一代全自研智能语音模型,打破沟通壁垒
  • 穿越代码之海:探寻结构体深层逻辑,展望未来应用新天地
  • layui框架实战案例(26):layui-carousel轮播组件添加多个Echarts图标的效果
  • Unity开发一个FPS游戏之三
  • NIUSHOP完美运营版商城 虚拟商品全功能商城 全能商城小程序 智慧商城系统 全品类百货商城
  • vue2开发好还是vue3开发好vue3.0开发路线
  • 爬虫 新闻网站 并存储到CSV文件 以红网为例 V2.0 (控制台版)升级自定义查询关键词、时间段,详细注释
  • JavaSE-11笔记【多线程2(+2024新)】
  • WebKit是什么?
  • 谷歌(Google)历年编程真题——接雨水
  • golang 归并回源策略
  • 【漏洞复现】可视化融合指挥调度平台 dispatch接口处存在任意文件上传漏洞
  • 最讨厌这种字符串问题了!!
  • B-名牌赌王(本人遇到的题,做个笔记)
  • 博客评论回复03
  • 【【萌新的学习之Numpy数组的使用】】
  • RabbitMQ3.13.x之七_RabbitMQ消息队列模型
  • Android JNI 调用第三方SO
  • Vid2seq
  • Opencv人机交互界面设置
  • 蓝桥杯算法心得——字典树考试(贡献度+前缀和)
  • Linux下Qt生成程序崩溃文件
  • Go语言中测试和性能
  • 回归预测 | Matlab基于CPO-GPR基于冠豪猪算法优化高斯过程回归的多输入单输出回归预测
  • python 日期字符串转换为指定格式的日期
  • day03-Docker
  • C语言函数实现冒泡排序
  • 区间概率预测python|QR-CNN-BiLSTM+KDE分位数-卷积-双向长短期记忆神经网络-时间序列区间概率预测+核密度估计
  • Java 分支结构 - if…else/switch