蓝桥杯上岸每日N题 第四期(最少刷题数)!!!

蓝桥杯上岸每日N题第四期 ❗️ ❗️ ❗️

最少刷题数

同步收录 👇

蓝桥杯上岸必背!!!(持续更新中~)

大家好 我是寸铁💪

冲刺蓝桥杯省一模板大全来啦 🔥

蓝桥杯4月8号就要开始了 🙏

距离蓝桥杯省赛倒数第3天 ❗️ ❗️ ❗️

还没背熟模板的伙伴们背起来 💪 💪 💪

真题千千万万遍,蓝桥省一自然现! ✌️

日更3000里,蓝桥眷顾你 🌟

祝大家4月8号蓝桥杯上岸 ☀️ ~

还没背熟模板的伙伴们背起来 💪 💪 💪

祝大家4月8号蓝桥杯上岸 ☀️

不清楚蓝桥杯考什么的点点下方👇

考点秘籍

想背纯享模版的伙伴们点点下方👇

蓝桥杯省一你一定不能错过的模板大全(第一期)

蓝桥杯省一你一定不能错过的模板大全(第二期)

蓝桥杯省一你一定不能错过的模板大全(第三期)

蓝桥杯省一你一定不能错过的模板大全(第四期)!!!

想背注释模版的伙伴们点点下方👇

蓝桥杯必背第一期

蓝桥杯必背第二期

往期精彩回顾

蓝桥杯上岸每日N题 第一期(一)!!!

蓝桥杯上岸每日N题第一期(二)!!!

蓝桥杯上岸每日N题第一期(三)!!!

蓝桥杯上岸每日N题第二期(一)!!!

蓝桥杯上岸每日N题第三期(一)!!!

操作系统期末题库 第九期(完结)

LeetCode Hot100 刷题(第三期)

idea创建SpringBoot项目报错解决方案

数据库SQL语句(期末冲刺)

想看JavaB组填空题的伙伴们点点下方 👇

填空题

竞赛干货

算法竞赛字符串常用操作大全

蓝桥杯上岸必刷!!!(模拟/枚举专题)

蓝桥杯上岸必背!!! (第三期 DP)

蓝桥杯上岸必背!!!(第四期DFS)

蓝桥杯上岸必背!!!(第五期BFS)

蓝桥杯上岸必背!!!(第六期树与图的遍历)

蓝桥杯上岸必背!!!(第七期 最短路算法)

蓝桥杯上岸必背!!!(第八期 简单数论)

分析

考点:前缀和+二分

先背一遍模板:

前缀和:

for(int i=0;i<n;i++){int a=sc.nextInt();
}
for(int i=1;i<=N;i++){s[i]+=s[i-1];}

二分

(1)情况1

int l= down, r= up
while(l<r){int mid=l+r+;if(q[mid]>=x)r=mid;else l=mid+1;}

(2)情况2

int l= down, r= up
while(l<r){int mid=l+r+1>>1;if(q[mid]<=x)l=mid;else r=mid-1;
}

最少刷题数

题目描述:

对于每一名学生,请你计算他至少还要再刷多少道题,才能使得全班刷题比他多的学生数不超过刷题比他少的学生数。
全班刷题比他多的学生数不超过刷题比他少的学生数。
换句话说:全班刷题比他少的学生数>=(大于等于)全班刷题比他多的学生数

思路

不会就枚举,挨个去模拟样例,打暴力!
题目是死的,人是活的。
12
比他少的:6,10
比他多的:15,20
需要:0

10
比他少的:6
比他多的:12 15 20
需要:3

15
比他少的:6 10 12
比他多的:20
需要:0

20
比他少的:6 10 12 15
比他多的:20
需要:0

6
比他少的:
比他多的:10 12 15 20
需要:7
我们发现:
像10需要多刷3道题,变为13,将6、12包含进来
像6需要多刷7道题,变为13,将10、12包含进来

多刷题一定可以满足条件,但是少刷题不一定满足条件。

发现具有二段性,我们要找到的是最少满足条件的答案!

这时便想到了二分!

我们通过二分去二分出最少应该刷的总题数

怎么二分?

首先要满足的是题目所给的条件:
全班刷题比他少的学生数>=(大于等于)全班刷题比他多的学生数
那我们要怎么知道刷题数的人数?
用**cnt[]数组存一下每种刷题数的人数**
再用前缀和处理每段刷题数区间的人数
如果全班刷题比他少的学生数>=(大于等于)全班刷题比他多的学生数,说明不需要刷题,那么直接输出0即可。

剩下的情况需要二分:

当前刷题数 mid
比他刷题数量多的人数即:
cnt[M]-cnt[mid]
比他刷题数量少的人数即:
cnt[mid-1]-1

cnt[mid-1]-1
//当前刷题数为mid
//比他少的便是cnt[mid-1]-1

满足刷题数量比他多的学生小于等于刷题数量比他少的学生
cnt[M]-cnt[mid]<=cnt[mid-1]-1
我们需要继续寻找,缩小范围,即**r=mid;**
直到找到最少满足条件的刷题数,二分停止。
其他的说明刷题数量不够,则需要往刷题数多的方向继续找:
l=mid+1

二分到最**后l==r说明找到最少应该刷的总题数**
需要刷的题数(答案):应该刷的题数l-原本的题数p[i]
即**l-p[i]**

为什么需要减1?

因为,本来刷题数是小于**mid的,包含在mid-1中。
现在变为
mid,所以需要减去之前在mid-1**区间的自己。

注意:

感谢@执梗大佬的提醒!
当**a[i]等于0时,即刷题数为0时,班级中不存在比他刷题还少的。
这里我们在
二分时,刷题人数比他少的需要进行特判,和0取一个max**。

Accode

import java.io.*;
public class Main{static int N=100010,M=100000;//N开100010防止数组越界//M开100000刷题数最多是100000static int p[]=new int[N];//每个人的刷题数量static int cnt[]=new int[N];//统计不同的刷题数量的人数public static void main(String []args) throws IOException{BufferedReader bf=new BufferedReader(new InputStreamReader(System.in));PrintWriter pw=new PrintWriter(new OutputStreamWriter(System.out));int n=Integer.parseInt(bf.readLine()); String s[]=bf.readLine().split(" ");for(int i=0;i<n;i++) {p[i]=Integer.parseInt(s[i]);//每个人的刷题数量cnt[p[i]]++;//统计 刷题数量为p[i]的人数}//某段刷题数区间内的人数for(int i=1;i<=M;i++) {cnt[i]+=cnt[i-1];}for(int i=0;i<n;i++) {//枚举每个学生的刷题数是否满足     if(cnt[M]-cnt[p[i]]<=cnt[Math.max(0, p[i]-1)]) {//注意边界:最少不能少于0道刷题数//刷题比他多的人数小于等于刷题比他少的//那么他就不需要再刷题,直接输出0即可pw.print(0+" ");continue;   }//二分出的刷题数量midint l=p[i],r=M;while(l<r) {int mid=l+r>>1;//二分出的刷题数量if(cnt[M]-cnt[mid]<=cnt[mid-1]-1) {//刷题数量比他多的学生小于等于刷题数量比他少的学生//进一步减少刷题数量,r=midr=mid;}else {//否则,说明刷题数量不够,需要多刷题目l=mid+1;}}//二分出的l(r)是每个p[i]最少应该刷的总题数//需要刷的题数:最少应该刷的总题数-原本的题数//即l-p[i]pw.print((l-p[i])+" ");}pw.flush();}
}

参考资源

https://zhigeng.blog.csdn.net/article/details/128014661?spm=1001.2014.3001.5502
✨ ✨ ✨
看到这里,不妨点个关注 💖

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

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

相关文章

华云安参编的《云原生安全配置基线规范》正式发布

由中国信息通信研究院&#xff08;以下简称“中国信通院”&#xff09;、中国通信标准化协会主办的第十届可信云大会云原生安全分论坛于7月26日在北京国际会议中心成功召开。作为大会上展示的成果之一&#xff0c;由中国信通院联合行业领先企业共同编写的《云原生安全配置基线规…

寒假作业(蓝桥杯2016年省赛C++A组第6题 )

题目&#xff1a; 注&#xff1a;蓝桥杯2016年省赛CA组第6题 请填写表示方案数目的整数。 题解&#xff1a; 由题可知这是一道全排列问题&#xff0c;因此我们可以使用c的next_permutation函数对于1-13的数字进行全排列即可&#xff0c;并每次排列判断是否满足题意。 注意…

How to Use Glslang

文章目录 Execution of Standalone Wrapper构建 (CMake)依赖关系构建步骤如果需要更改 GLSL 语法测试运行测试基本内部操作 Execution of Standalone Wrapper 要使用独立的二进制形式&#xff0c;请执行glslang&#xff0c;它将打印一条使用语句。基本操作是给它一个包含着色器…

WordPress做权重站:二级目录伪静态写法

我喜欢用WordPress建站&#xff0c;但是每个网站我都会写3个以上的二级目录&#xff0c;为什么了&#xff0c;因为WordPress数据量过大会导致数据库很大很卡&#xff0c;所以这种做法可以减轻数据库的负荷。我一般每个目录的文章达到15万篇就不会再更新了&#xff0c;3个目录加…

无边界野望:高通也有痛点?

外界给予高通的称呼无非是性价屠夫&#xff0c;因为即可“拳打”联发科&#xff0c;又能四度包下上海ChinaJoy展馆做游戏技术支持的王者&#xff0c;对高通来说它的路是无边界的&#xff0c;也是跨界之路上前行的“诗和远方”。 这里&#xff0c;既有生成式AI在终端侧布局、与…

React之组件的生命周期

React之组件的生命周期 一、概述二、整体说明三、挂载阶段四、更新阶段五、卸载阶段 一、概述 生命周期:一个事务从创建到最后消亡经历的整个过程组件的生命周期&#xff1a;组件从被创建到挂载到页面中运行&#xff0c;再到组件不用时卸载的过程意义&#xff1a;理解组件的生…

使用IPSEC VPN 在有防火墙的场景和有NAT转换的场景下实现隧道通信实验

目录 一、在有防火墙的场景 1、为所有设备配置对应ip地址&#xff1a; 2、进入两个防火墙实现公网互通 3、测试公网是否互通 4、进入SW1配置IPSEC VPN 5、进入SW2配置IPSEC VPN 6、配置策略方向ESP的流量 7、尝试使用PC1访问PC2 二、在有NAT地址转换的场景 1、为新增加…

视频号将不支持添加企业微信:私域流量受阻

我是卢松松&#xff0c;点点上面的头像&#xff0c;欢迎关注我哦&#xff01; 以前大家一直嚷嚷着说微信视频号企业微信私域流量神器&#xff0c;这下好了&#xff0c;从今日起这个功能没了&#xff0c;以后新的视频号不能绑定企业微信了&#xff0c;但老视频号还可以。 昨天…

golang mongodb

看代码吧 package main// 链接案例 https://www.mongodb.com/docs/drivers/go/current/fundamentals/connection/#connection-example // 快速入门 https://www.mongodb.com/docs/drivers/go/current/quick-start/ import ("context""fmt""log"…

招投标系统简介 招投标系统源码 java招投标系统 招投标系统功能设计

&#xfeff;功能模块&#xff1a; 待办消息&#xff0c;招标公告&#xff0c;中标公告&#xff0c;信息发布 描述&#xff1a; 全过程数字化采购管理&#xff0c;打造从供应商管理到采购招投标、采购合同、采购执行的全过程数字化管理。通供应商门户具备内外协同的能力&…

c++游戏框架

游戏类 class Sprite { public:Sprite(int x, int y, int w, int h, const char* imagePath);~Sprite();void render(SDL_Renderer* renderer);void move(int x, int y); private:SDL_Texture* texture_;SDL_Rect rect_; }; 物理引擎类 class PhysicsEngine { public:Physi…

【数据结构】二叉树、二叉搜索树、平衡二叉树、红黑树、B树、B+树

概述 二叉树&#xff08;Binary Tree&#xff09;&#xff1a;每个节点最多有两个子节点&#xff08;左子节点和右子节点&#xff09;&#xff0c;没有限制节点的顺序。特点是简单直观&#xff0c;易于实现&#xff0c;但查找效率较低。 二叉搜索树&#xff08;Binary Search…

Redis设置hash,为不同的field设置不同的过期时间

Redis设置hash&#xff0c;为不同的field设置不同的过期时间 一、背景需求二、具体要求三、代码实现 一、背景需求 最近做了一个小需求&#xff0c;由于系统对接&#xff0c;导致我们的系统在高峰的时候CPU飙升&#xff0c;所以需要在高峰的时候保护系统进程不受影响。 而且还…

烘焙小程序蛋糕店烘焙店源码点心店小程序源码

本系统开发使用JAVA技术栈开发 使用uniapp技术栈 支持微信小程序 &#xff0c;对接打印机&#xff0c;对接第三方同城跑腿平台 用户端使用&#xff1a;uniapp 管理端使用&#xff1a;vueelementui 后台服务使用&#xff1a;springbootjpa

Java版本工程行业管理系统源码-专业的工程管理软件-提供一站式服务 em

​ 工程项目管理软件&#xff08;工程项目管理系统&#xff09;对建设工程项目管理组织建设、项目策划决策、规划设计、施工建设到竣工交付、总结评估、运维运营&#xff0c;全过程、全方位的对项目进行综合管理 工程项目各模块及其功能点清单 一、系统管理 1、数据字典&#…

科大讯飞-鸟类分类挑战赛-测试【1】

科大讯飞-鸟类分类挑战赛-测试【1】 1. 比赛说明2. EfficientNet测试2.1 **模型搭建:**2.2 **模型训练:**2.3 训练过程可视化2.4 一些报错解决:1. 比赛说明 背景: 随着生态环境的不断变化和人类对自然资源的过度开发,世界各地的鸟类数量和种类正在发生着巨大的变化。为了更…

网络OSI七层模型解析

在整理笔记时发现了该文章&#xff0c;也不记得是当时自己学习时的感悟还是记录的别人的精华了&#xff0c;感觉写的挺好&#xff0c;就放到博客上了&#xff0c;自己闲时可以看看&#xff0c;其他人有需求也可以瞅瞅。 1 物理层【比特】 首先解决两台物理机之间的通信需求&a…

不同语言操作符的优先级

看到标题&#xff0c;可能会心生疑惑: 这么基础且重要的操作&#xff0c;不同语言不应该是一致的吗&#xff1f; 并不一定&#xff0c;比如对于右移运算和加法运算&#xff0c;Go就与其他多数语言表现得不一致&#xff1a; Go: package mainimport "fmt"func main() …

Vault数据备份恢复-MySQL

前言 Vault提供了可靠的功能来保护数据库和其他关键数据。 对于MySQL数据库,Vault提供了一个易于使用的解决方案,可以自动创建和管理定期备份,并支持从备份中快速恢复数据。本文将介绍Vault后端存储MySQL的备份恢复,包括如何设置Vault、如何进行数据备份和还原、如何保护…

分布式天梯图算法在 Redis 图数据库中的应用

分布式天梯图算法在 Redis 图数据库中的应用 一、简介1 天梯图算法2 天梯图算法在Redis的应用 二、Redis分布式天梯图算法设计与优化1 基于天梯图的分布式算法设计2 多节点扩展与负载均衡优化3 数据存储方案与压缩策略 三、技术实现3.1 系统架构设计3.2 技术选型3.3 关键实现细…