news 2026/5/30 23:54:59

2023年信奥赛C++提高组csp-s初赛真题及答案解析(阅读程序第3题)

作者头像

张小明

前端开发工程师

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

2023年信奥赛C++提高组csp-s初赛真题及答案解析(阅读程序第3题)

第3题
#include<vector>#include<algorithm>#include<iostream>usingnamespacestd;boolf0(vector<int>&a,intm,intk){ints=0;for(inti=0,j=0;i<a.size();i++){while(a[i]-a[j]>m)j++;s+=i-j;}returns>=k;}intf(vector<int>&a,intk){sort(a.begin(),a.end());intg=0;inth=a.back()-a[0];while(g<h){intm=g+(h-g)/2;if(f0(a,m,k)){h=m;}else{g=m+1;}}returng;}intmain(){intn,k;cin>>n>>k;vector<int>a(n,0);for(inti=0;i<n;i++){cin>>a[i];}cout<<f(a,k)<<endl;return0;}

假设输入总是合法的且1 ≤ a i ≤ 10 8 , n ≤ 10000 , 1 ≤ k ≤ n ( n − 1 ) / 2 1≤a_i≤10^8,n≤10000,1≤k≤n(n−1)/21ai108,n10000,1kn(n1)/2,完成下面的判断题和单选题:

判断题
  1. 将第 24 行的m改为m - 1,输出有可能不变,而剩下情况为少 11。()

    A. 正确 B. 错误

  2. 将第 22 行的g + (h - g) / 2改为(h + g) >> 1,输出不变。()

    A. 正确 B. 错误

  3. 当输入为5 7 2 -4 5 1 -3,输出为5。()

    A. 正确 B. 错误

单选题
  1. 设 a数组中最大值减最小值加 1为 A,则f函数的时间复杂度为()。

    A. O(nlog⁡A) B. O(n2 ^22log⁡A) C. O(nlog⁡(nA)) D. O(nlog⁡n)

  2. 将第 10行中的>替换为>=,那么原输出与现输出的大小关系为()。

    A. 一定小于

    B. 一定小于等于且不一定小于

    C. 一定大于等于且不一定大于

    D. 以上三种情况都不对.

  3. 当输入为5 8 2 -5 3 8 -12,输出为()。

    A.13B.14C.8D.15

判断题答案与解析
  1. 正确(A)

    • 将第24行的m改为m - 1,二分查找在满足条件时上界变为m-1。若正确答案为0,输出不变;否则输出比正确答案少1。因此说法正确。
  2. 正确(A)

    • g + (h - g) / 2(h + g) >> 1在数学上等价,且输入值在int范围内,不会溢出。因此输出不变。
  3. 正确(A)

    • 输入数组排序后为[-4, -3, 1, 2, 5],所有差值从小到大排序为[1, 1, 3, 4, 4, 5, 5, 6, 8, 9],第7小的差值为5,程序输出5,正确。
单选题答案与解析
  1. C. O(nlog⁡(nA))

    • 函数f先排序,时间复杂度O(n log n)。二分查找范围大小为A(最大值减最小值加1),每次迭代调用f0O(n),二分次数O(log A)。总时间复杂度为O(n log n + n log A) = O(n log(nA))
  2. B. 一定小于等于且不一定小于

    • 原程序输出第k小的差值ans。修改后,新程序输出ans2
      • ans < max_diff,则ans2 = ans + 1
      • ans = max_diff,则ans2 = ans
    • 因此原输出一定小于等于新输出,且可能相等(当ans为最大差值时)。
  3. B. 14

    • 输入数组排序后为[-12, -5, 2, 3, 8],所有差值从小到大排序为[1, 5, 6, 7, 7, 8, 13, 14, 15, 20],第8小的差值为14,程序输出14

专栏推荐:信奥赛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/30 15:18:54

引入AI辅助的3D游戏美术工作流

不同于其他类型的AI应用&#xff0c;3D内容的AI生成应用所面向的行业更加垂直&#xff0c;会有一定的专业使用门槛&#xff0c;并且生成的产物与直接投入生产环境的内容往往还存在一定的距离。笔者这里针对小型独立游戏/Demo的场景下&#xff0c;为提高3D游戏美术工作效率和降低…

作者头像 李华
网站建设 2026/5/28 14:49:21

Python入门:从安装到第一个程序

好的&#xff0c;我们来梳理一下Python的基础与环境配置要点&#xff1a; 1. Python 是什么&#xff1f; Python 是一种高级编程语言&#xff0c;以简洁易读的语法著称。它支持多种编程范式&#xff08;面向对象、函数式等&#xff09;&#xff0c;广泛应用于数据分析、人工智…

作者头像 李华
网站建设 2026/5/28 23:03:00

RanUI:一款回归纯粹的高性能PHP博客/内容管理系统

RanUI&#xff1a;一款回归纯粹的高性能PHP博客/内容管理系统 在追求速度与极简的今天&#xff0c;你是否已经厌倦了臃肿、复杂&#xff0c;动辄加载数秒的CMS系统&#xff1f;对于真正专注于内容创作的博主和开发者而言&#xff0c;一个响应迅速、核心纯净、但又具备足够扩展…

作者头像 李华
网站建设 2026/5/28 23:52:30

安卓驱动开发工程师:深入技术核心,驱动智能未来

深圳达实智能股份有限公司 安卓驱动开发工程师 职位信息 负责安卓系统底层驱动的设计、开发、调试、集成与性能优化工作。 负责Android Framework及内核等系统框架层的调优,关键模块开发实现及调试定位。 系统API设计和开发,安卓SDK定制和维护。 二、 任职要求: 1. 基础要求…

作者头像 李华
网站建设 2026/5/28 14:50:26

协鑫集成高级AI开发工程师职位深度解析:职责、能力与面试指南

协鑫集成 高级AI开发工程师 职位信息 职位详情: 1.探索、跟踪国内外领先的AI技术、产品方案,推动其在公司内应用,提升企业运营效率,生产效率。 2.协调各部门团队,包括研发、工艺、生产、职能等,确保AI项目目标实现。 3.结合AI背景和行业需求,为企业数字化、智能化提供指…

作者头像 李华
网站建设 2026/5/29 23:55:58

Snapd和Apt—Linux 上两种完全不同的软件包管理系统

Snapd 和 Apt 是 Linux 上两种完全不同的软件包管理系统&#xff0c;各有优劣。以下是详细对比&#xff1a; 核心区别一览 特性Apt (传统)Snapd (现代)设计年代1998年 (Debian)2014年 (Ubuntu)软件包格式.deb.snap依赖处理共享系统库&#xff0c;自动解决依赖自带所有依赖&…

作者头像 李华