Peter算法小课堂—简单建模(1)

简单建模是什么?建模=模拟+数据结构。

太戈编程2601题

题目描述:

你经过多年学习,获得了博士学位,一共发表了n篇论文,并且你的第 i 篇论文得到了来自其他研究文献的 ci 次引用。在学术圈里,通常会使用 H 指数(H-index)来衡量一个人的学术成就。如果某人的论文里,至少有h 篇论文的引用次数不少于h,那么此人的H指数就不小于h。满足条件的所有h数值里选最大值,就是此人的H指数了。

例如,如果某人有 4 篇论文,引用次数分别为 (1,100,2,3),则 H 指数为 2;

若引用次数为 (1,100,3,3) 则 H指数将会是 3。

请求出你的H指数为多少?

建模思路:排序,求最大值。

#include<bits/stdc++.h>
using namespace std;
const int N=100009;
int c[N];
bool cmp(const int&a,const int&b){return a>b;
}
int main(){freopen("h.in","r",stdin);freopen("h.out","w",stdout);int n;cin>>n;for(int i=1;i<=n;++i)cin>>c[i];sort(c+1,c+1+n,cmp);int h=0;for(int i=1;i<=n;++i){if(c[i]>=i) h=i;else break;}cout<<h<<endl;return 0;
}

最最最水的题了,已经是建模最简单的题了

估计这比普及组第1题还简单

太戈编程2602题

题目描述:

你经过多年学习,获得了博士学位,一共发表了n篇论文,并且你的第 i 篇论文得到了来自其他研究文献的 ci 次引用。在学术圈里,通常会使用 H 指数(H-index)来衡量一个人的学术成就。如果某人的论文里,至少有h 篇论文的引用次数不少于h,那么此人的H指数就不小于h。满足条件的所有h数值里选最大值,就是此人的H指数了。

例如,如果某人有 4 篇论文,引用次数分别为 (1,100,2,3),则 H 指数为 2;

若引用次数为 (1,100,3,3) 则 H指数将会是 3。

最近你听说有位知名学者正计划写一篇综述论文,并会引用一些你曾经写过的论文。经过询问,你得知最多会有L篇你的论文被引用,但是还不清楚是哪几篇,当然每篇论文最多被额外引用一次。你在心里盘算着,这篇综述论文发表后,理论上你的H指数最高为多少?

建模思路:我们可以证明“原来h指数为H,通过综述增加部分引用量后,指数最多为H+1”以下给出证明。证明:假设h指数可以变为H+2,则至少有H+2篇论文引用量为H+2。若去掉综述带来的引用量增加,则至少有H+2篇论文引用量为H+1,说明在没有综述时,h指数为H+1,与假设矛盾。现在,题目变成“能否通过增加引用量将H改成H+1。怎么办呢?先将c[]从大到小排序,则原来仅有前H篇文章引用次数不少于H,增加引用量后,若c[H+1]=H,则引用量变成H+1。

#include <bits/stdc++.h>
using namespace std;
const int N=100005;
int c[N];
freopen("index.in","r",stdin);
freopen("index.out","w",stdout);
bool cmp(const int&a,const int&b){return a>b;
}int main(){int n,L;cin>>n>>L;for(int i=1;i<=n;++i) cin>>c[i];sort(c+1,c+1+n,cmp);int h=0;for(int i=1;i<=n;++i){if(c[i]>=i) h=i;else break;}int ans=h;if(c[h+1]==h){if(L>=h+1) ans++;else if(c[h+1-L]>=h+1) ans++;}cout<<ans;return 0;
}

这题……难度和普及组T1差不多八。当然,这种方法在考试时一般是想不到的,所以以下为二分法。

二分法

#include <bits/stdc++.h>
using namespace std;
int x[100009];
int n;
bool ok(int k){int cnt=0;for(int i=1;i<n;i++){if(x[i]>=k) cnt++;}return cnt>=k;
}
int main(){cin>>n;for(int i=1;i<=n;i++) cin>>x[i];int l=1;int r=n;while(l<r){int mid=(l+r)/2;if(ok(mid)){ans=mid;l=mid+1;}else r=mid-1;}cout<<r<<endl;return 0;
}

希望这些对大家有用,三连必回

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/224225.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java常用API合集(一)

文章目录 一、StringBuilder类1.1 方法演示1.2 String 和StringBuilder互转1.3 String 和StringBuilder效率对比1.4 应用案例 二、StringJoiner类三、Math类四、System类五、Runtime类 一、StringBuilder类 StringBuilder代表可变字符串对象&#xff0c;相当于是一个容器&…

dcf写入机制

dcf写入机制 写入 dcf提供如下两个写入接口&#xff1a; dcf_write int dcf_write(unsigned int stream_id, const char* buffer, unsigned int length, unsigned long long key, unsigned long long *index);仅在leader节点调用。 dcf_universal_write int dcf_universal_w…

代码审计的未来趋势

代码审计的未来发展趋势&#xff0c;如人工智能、区块链、云计算等代码审计是一项非常重要的工作&#xff0c;可以帮助团队发现潜在的安全漏洞和缺陷。随着技术的不断发展&#xff0c;代码审计也在不断地发展和改进。本文将介绍代码审计的未来发展趋势&#xff0c;包括人工智能…

C++ 标准库-chrono 基本用法

文章目录 再C开发中&#xff0c;经常会遇到时间相关的问题&#xff0c;这里可以借助 <chrono>来帮我们解决问题。 <chrono> 是 C 标准库中的一个头文件&#xff0c;它提供了处理时间和日期的功能。这个库引入了一组类型和函数&#xff0c;用于在程序中进行时间点、…

Linux(22):X Window 设定介绍

X Window System X Window System 是个非常大的架构&#xff0c;他还用到网络功能。也就是说&#xff0c;其实 X 窗口系统是能够跨网络与跨操作系统平台的。 X Window系统最早是由 MIT (Massachusetts Institute of Technology&#xff0c;麻省理工学院) 在1984年发展出来的&…

day13 栈与队列(三)

day13 2023.12.11 代码随想录 今天刚出差回来&#xff0c;拉下了很多天的博客&#xff0c;慢慢补吧&#xff0c;每天做当天的任务&#xff0c;再补一篇博客。 1. 239滑动窗口最大值 本题就是每次窗口内容放在一个单调队列中&#xff0c;那么每次直接返回队头元素&#xff08;最…

register_chrdev函数使用

static struct class *led_class;static int major 0; /*记得static 不然可能会出现外部.c调用这个变量的可能*/static struct file_operations led_drv {.owner THIS_MODULE,.open led_drv_open,.read led_drv_read,.write led_drv_write,.release led_drv…

Python中的继承:概念、用法与示例

目录 一、引言 二、继承的概念 三、继承的用法 1、继承父类的属性和方法 2、添加新的属性和方法 3、覆盖父类的方法 四、示例代码展示 五、继承中的多态性 六、继承中的封装和抽象 七、继承中的多重继承 总结 一、引言 面向对象编程&#xff08;OOP&#xff09;是一…

「完美世界」石昊被诓入至尊道场,修炼无敌道,打跑天仙书院弟子

Hello,小伙伴们&#xff0c;我是拾荒君。 《完美世界》这部国漫&#xff0c;在粉丝的翘首期盼中&#xff0c;终于迎来了第141集的更新。这一集的内容&#xff0c;对于喜欢石昊和至尊道场劫难的观众来说&#xff0c;可谓是扣人心弦&#xff0c;让人目不转睛。 在这一集中&#…

【信息学奥赛】拼在起跑线上,想入道就别落下自己!

编程无难事&#xff0c;只怕有心人&#xff0c;学就是了&#xff01; 文章目录 1 信息学奥赛简介2 信息学竞赛的经验回顾3 优秀参考图书推荐《信息学奥赛一本通关》4 高质量技术圈开放 1 信息学奥赛简介 信息学奥赛&#xff0c;作为全国中学生学科奥林匹克“五大学科竞赛”之一…

ChatGPT使用:一个发包机器人的提示词

发包机器人&#xff1a; 设想&#xff1a;目前项目组有n条打包线会输出多个包&#xff0c;用户想获取最新的包是比较困难的&#xff0c;难点在于 1. 分支多&#xff1a;trunk&#xff0c;release&#xff0c;outer等&#xff0c;至少有3个分支&#xff1b; 2. 多平台&#x…

C++ 面向对象模型 小知识点

空类 大小 空类的 sizeof 结果是 1。原因&#xff1a;每个对象都应该在内存上有独一无二的地址&#xff0c;因此给空对象分配 1 个字节空间。 当定义了一个变量后&#xff0c;则类的大小为这个变量的大小。 类中 变量和函数是分开存储的。 静态成员变量&#xff0c;静态成员函数…

浅谈“前端已死”论

自我介绍一下&#xff0c;我目前是一个C#后端开发工程师&#xff0c;题目中所述的java和前端貌似跟我没有太大的关系&#xff0c;我想说&#xff0c;在这IT行业内&#xff0c;所有的东西都是互通的&#xff0c;最近公司也在搞B/S&#xff0c;也是使用了javavue的模式&#xff0…

Spring+SpringMVC+SpringBoot

Spring bean bean基础配置 bean别名配置 注意事项&#xff1a; 获取bean无论是通过id还是name获取。如果无法获取到&#xff0c;将抛出异常NoSuchBeanDefinitionException bean的作用范围配置 适合交给容器进行管理的bean 表现层对象、业务层对象、数据层对象、工具对象 不…

Vue3+ts实现页面跳转及参数传递

## 列表页 <script lang"ts" setup> import { reactive, toRefs } from vue // 1 引入useRouter路由信息方法 import { useRouter } from vue-router // 2 获取实例 const router useRouter()const gotoDetail (index: string) > {router.push({path: …

《opencv实用探索·十九》光流法检测运动目标

前言 光流法&#xff08;Optical Flow&#xff09;是计算机视觉中的一种技术&#xff0c;用于估计图像中相邻帧之间的像素位移或运动。它是一种用于追踪图像中物体运动的技术&#xff0c;可以在视频中检测并测量物体的运动轨迹。 光流的直观理解&#xff1a; 光流是一个视频中两…

智能物联网(IoT)VS AI物联网(AIoT)

#IoT# #AIoT# 智能物联网&#xff08;IoT&#xff09;和AI物联网&#xff08;AIoT&#xff09;区别 概念&#xff1a; 物联网&#xff08;IoT&#xff09;&#xff1a;即“万物相连的互联网”&#xff0c;是在互联网基础上延伸和扩展的网络&#xff0c;将各种信息传感设备与网…

离散型制造企业MES系统行业应用

离散型制造企业具有产品种类多、生产周期长、生产过程复杂等特点&#xff0c;因此&#xff0c;采用先进的生产管理系统对于提高企业的生产效率和管理水平至关重要。其中&#xff0c;制造执行系统&#xff08;MES&#xff09;在离散型制造企业中得到了广泛应用&#xff0c; 一、…

TensorBoard使用和问题解决

一、什么是TensorBoard? TensorBoard 是一组用于数据可视化的工具&#xff0c;它包含在流行的开源机器学习库 Tensorflow 中。TensorBoard 的主要功能包括&#xff1a; 可视化模型的网络架构跟踪模型指标&#xff0c;如损失和准确性等检查机器学习工作流程中权重、偏差和其他…

PDI/Kettle-9.2.0.0-R(对应jdk1.8)源码编译问题记录及源码结构简介

目录 &#x1f4da;第一章 前言&#x1f4d7;背景&#x1f4d7;目的&#x1f4d7;总体方向 &#x1f4da;第二章 代码结构初识基本结构&#x1f4d7;代码模块详情 ⁉️问题记录❓问题一&#xff1a;代码分支哪些是发布版本❗答&#xff1a;后缀-R的版本 ❓问题二&#xff1a;50…