news 2026/5/11 7:34:48

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/5/10 15:07:05

ChatGPT App SDK 入门指南:从零构建你的第一个 AI 应用

ChatGPT App SDK 入门指南&#xff1a;从零构建你的第一个 AI 应用 摘要&#xff1a;本文针对开发者初次接触 ChatGPT App SDK 时的常见问题&#xff0c;提供从环境配置到 API 调用的完整流程。你将学习如何快速集成 SDK&#xff0c;处理认证与请求&#xff0c;并了解如何优化对…

作者头像 李华
网站建设 2026/5/8 20:14:53

PLC与组态王通信实战:毕设课题中的数据采集与可视化架构解析

PLC与组态王通信实战&#xff1a;毕设课题中的数据采集与可视化架构解析 做毕设最怕什么&#xff1f;硬件不动、画面不亮、老师一句“数据怎么又断了&#xff1f;”——PLC 与组态王这对老搭档&#xff0c;年年让一批工控小白熬夜秃头。下面把我在实验室踩过的坑、调通的夜、跑…

作者头像 李华
网站建设 2026/5/10 10:04:33

FreeRTOS队列入队原理与工程实践深度解析

1. FreeRTOS队列入队函数的工程实现与原理剖析 在嵌入式实时系统开发中,队列(Queue)是任务间通信最核心、最常用的同步机制。FreeRTOS通过高度抽象的API屏蔽了底层硬件细节,但其内部实现逻辑严谨、设计精巧。本文将基于FreeRTOS v10.4.6源码,结合STM32平台实际工程场景,…

作者头像 李华
网站建设 2026/5/8 20:14:53

FreeRTOS队列集:多源异步事件的零轮询响应方案

1. 队列集的设计动因与核心价值 在 FreeRTOS 的任务间通信体系中,队列(Queue)是最基础、最常用的同步与数据传递机制。其设计目标明确:为两个或多个任务提供线程安全的、具有缓冲能力的消息通道。一个典型的队列由固定长度的内存块构成,每个元素大小相同,所有元素的数据…

作者头像 李华
网站建设 2026/5/11 5:52:01

百度智能云客服AI辅助开发实战:从对话管理到意图识别的全链路优化

智能客服系统最怕三件事&#xff1a;用户问得“偏”、对话拖得“长”、意图藏得“深”。 “偏”指长尾问题覆盖不全&#xff0c;规则引擎一换场景就失灵&#xff1b;“长”指多轮对话里状态散落&#xff0c;前后句一脱节就“翻车”&#xff1b;“深”指同一句话里嵌套多个意图&…

作者头像 李华