news 2026/4/15 13:10:31

2024年信奥赛C++提高组csp-s初赛真题及答案解析(完善程序第1题)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
2024年信奥赛C++提高组csp-s初赛真题及答案解析(完善程序第1题)

2024年信奥赛C++提高组csp-s初赛真题及答案解析(完善程序第1题)

第 1 题

(序列合并)有两个长度为 N的单调不降序列 A和 B,序列的每个元素都是小于10 9 10^9109的非负整数。在 A和 B中各取一个数相加可以得到 N2 ^22个和,求其中第 K小的和。上述参数满足 N≤10 5 10^5105和 1≤K≤N 2 N^2N2

#include<iostream>usingnamespacestd;constintmaxn=100005;intn;longlongk;inta[maxn],b[maxn];int*upper_bound(int*a,int*an,intai){intl=0,r=___①___;while(l<r){intmid=(l+r)>>1;if(___②___){r=mid;}else{l=mid+1;}}return___③___;}longlongget_rank(intsum){longlongrank=0;for(inti=0;i<n;++i){rank+=upper_bound(b,b+n,sum-a[i])-b;}returnrank;}intsolve(){intl=0,r=___④___;while(l<r){intmid=((longlong)l+r)>>1;if(___⑤___){l=mid+1;}else{r=mid;}}returnl;}intmain(){cin>>n>>k;for(inti=0;i<n;++i)cin>>a[i];for(inti=0;i<n;++i)cin>>b[i];cout<<solve()<<endl;}
  1. ① 处应填( )?
    A.an-a
    B.an-a-1
    C.ai
    D.ai+1
  2. ② 处应填( )?
    A.a[mid] > ai
    B.a[mid] >= ai
    C.a[mid] < ai
    D.a[mid] <= ai
  3. ③ 处应填( )?
    A.a+l
    B.a+l+1
    C.a+l-1
    D.an-l
  4. ④ 处应填( )?
    A.a[n-1]+b[n-1]
    B.a[n]+b[n]
    C.2 * maxn
    D.maxn
  5. ⑤ 处应填( )?
    A.get_rank(mid) < k
    B.get_rank(mid) <= k
    C.get_rank(mid) > k
    D.get_rank(mid) >= k
题解:

本题要求从两个长度为 (N) 的单调不降序列 (A) 和 (B) 中各取一个数相加,得到 (N2 ^22) 个和,求第 (K) 小的和。解题思路是利用二分答案,统计有多少个和不超过给定的值 (sum),然后通过二分找到最小的 (sum) 使得不超过它的和的数量至少为 (K)。

  • :在upper_bound函数中,需要确定二分查找的右边界,即数组的长度。由于参数aan分别指向数组起始和结束的下一个位置,因此长度应为an - a选A
  • upper_bound函数的目标是找到第一个大于ai的元素,因此在二分过程中,当a[mid] > ai时,应将右边界移动到mid,否则左边界移动到mid + 1选A
  • :二分查找结束后,左边界l即为第一个大于ai的元素的索引,因此返回指针a + l选A
  • :二分答案的右边界应设为可能的最大和,即 (a[N-1] + b[N-1])。选A
  • :在二分答案过程中,若get_rank(mid)(即不超过mid的和的数量)小于 (K),说明mid太小,需要增大左边界;否则减小右边界。因此条件为get_rank(mid) < k选A

专栏推荐:信奥赛C++提高组csp-s初赛&复赛真题题解(持续更新)
https://blog.csdn.net/weixin_66461496/category_13125089.html


各种学习资料,助力大家一站式学习和提升!!!

#include<bits/stdc++.h>usingnamespacestd;intmain(){cout<<"########## 一站式掌握信奥赛知识! ##########";cout<<"############# 冲刺信奥赛拿奖! #############";cout<<"###### 课程购买后永久学习,不受限制! ######";return0;}

1、csp信奥赛高频考点知识详解及案例实践:

CSP信奥赛C++动态规划:
https://blog.csdn.net/weixin_66461496/category_13096895.html点击跳转

CSP信奥赛C++标准模板库STL:
https://blog.csdn.net/weixin_66461496/category_13108077.html 点击跳转

信奥赛C++提高组csp-s知识详解及案例实践:
https://blog.csdn.net/weixin_66461496/category_13113932.html

2、csp信奥赛冲刺一等奖有效刷题题解:

CSP信奥赛C++初赛及复赛高频考点真题解析(持续更新):https://blog.csdn.net/weixin_66461496/category_12808781.html 点击跳转

CSP信奥赛C++一等奖通关刷题题单及题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12673810.html 点击跳转

3、GESP C++考级真题题解:

GESP(C++ 一级+二级+三级)真题题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12858102.html 点击跳转

GESP(C++ 四级+五级+六级)真题题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12869848.html 点击跳转


GESP(C++ 七级+八级)真题题解(持续更新):
https://blog.csdn.net/weixin_66461496/category_13117178.html

4、CSP信奥赛C++竞赛拿奖视频课:

https://edu.csdn.net/course/detail/40437 点击跳转

· 文末祝福 ·

#include<bits/stdc++.h>usingnamespacestd;intmain(){cout<<"跟着王老师一起学习信奥赛C++";cout<<" 成就更好的自己! ";cout<<" csp信奥赛一等奖属于你! ";return0;}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/12 0:42:22

ops-math LayerNorm跨层复用与Attention输入融合实战

摘要 本文深度解析cann项目中ops-math的LayerNorm与Attention融合优化技术&#xff0c;聚焦/operator/ops_math/layernorm/layernorm_fusion.cpp的核心实现。通过追踪图优化阶段的融合触发条件&#xff0c;结合fusion_rules.json配置实操&#xff0c;实现计算图层的智能合并。…

作者头像 李华
网站建设 2026/4/13 4:03:25

ChatTTS MOS评测:从技术原理到生产环境实战指南

ChatTTS MOS评测&#xff1a;从技术原理到生产环境实战指南 摘要&#xff1a;本文深入解析ChatTTS的MOS评测技术原理&#xff0c;针对开发者在实际应用中遇到的语音质量评估不准确、评测效率低下等痛点&#xff0c;提供了一套完整的解决方案。通过对比传统评测方法&#xff0c;…

作者头像 李华
网站建设 2026/4/3 5:16:07

FreeRTOS互斥信号量与优先级继承机制详解

1. 互斥信号量的本质与设计动机 在FreeRTOS实时操作系统中,互斥信号量(Mutex Semaphore)并非一种独立于二值信号量(Binary Semaphore)之外的全新同步原语,而是其在特定应用场景下的功能增强变体。其核心差异在于引入了 优先级继承(Priority Inheritance)机制 ,这一…

作者头像 李华
网站建设 2026/4/11 20:49:39

从L1到L3:Docker 27三层隔离架构图谱(进程/网络/存储),首次公开某国有大行核心交易系统容器化割接72小时全链路监控看板

第一章&#xff1a;Docker 27三层隔离架构演进全景图 Docker 的隔离能力并非一蹴而就&#xff0c;而是历经内核演进、用户态抽象与运行时分层设计的持续迭代。自 2013 年初代发布至今&#xff0c;其核心隔离模型已从单一的 cgroups namespaces 组合&#xff0c;演化为涵盖内核…

作者头像 李华
网站建设 2026/4/11 13:22:26

TDengine 时序数据操作全解析:从写入到查询的实战指南

1. TDengine时序数据库基础操作入门 时序数据库是处理时间序列数据的专业工具&#xff0c;而TDengine作为国产开源时序数据库&#xff0c;其操作方式与传统关系型数据库既有相似又有独特之处。我们先从最基础的单条数据写入开始。 假设你正在开发一个智能电表监控系统&#x…

作者头像 李华
网站建设 2026/4/12 3:02:22

基于ROS2的无刷电机驱动开发:从架构设计到源码实现

1. ROS2与无刷电机驱动的完美结合 无刷电机&#xff08;BLDC&#xff09;凭借高效率、低噪音和长寿命等优势&#xff0c;已经成为机器人、无人机等智能硬件的核心动力单元。而ROS2作为机器人操作系统的第二代版本&#xff0c;其分布式架构和实时通信能力为电机控制提供了理想的…

作者头像 李华