news 2026/8/24 9:20:28

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

作者头像

张小明

前端开发工程师

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

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

第 2 题
#include<iostream>#include<cmath>#include<vector>#include<algorithm>usingnamespacestd;longlongsolve1(intn){vector<bool>p(n+1,true);vector<longlong>f(n+1,0),g(n+1,0);f[1]=1;for(inti=2;i*i<=n;i++){if(p[i]){vector<int>d;for(intk=i;k<=n;k*=i)d.push_back(k);reverse(d.begin(),d.end());for(intk:d){for(intj=k;j<=n;j+=k){if(p[j]){p[j]=false;f[j]=i;g[j]=k;}}}}}for(inti=sqrt(n)+1;i<=n;i++){if(p[i]){f[i]=i;g[i]=i;}}longlongsum=1;for(inti=2;i<=n;i++){f[i]=f[i/g[i]]*(g[i]*f[i]-1)/(f[i]-1);sum+=f[i];}returnsum;}longlongsolve2(intn){longlongsum=0;for(inti=1;i<=n;i++){sum+=i*(n/i);}returnsum;}intmain(){intn;cin>>n;cout<<solve1(n)<<endl;cout<<solve2(n)<<endl;return0;}

假设输入的 n是不超过 1000000 的自然数,完成下面的判断题和单选题:

判断题
  1. 将第 15行删去,输出不变。()

    A. 正确 B. 错误

  2. 当输入为10时,输出的第一行大于第二行。()

    A. 正确 B. 错误

  3. (2 分) 当输入为1000时,输出的第一行与第二行相等。()

    A. 正确 B. 错误

单选题
  1. solve1(n)的时间复杂度为()。

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

  2. solve2(n)的时间复杂度为()。

    A. O(n2 ^22) B. O(n) C. O(nlog⁡n) D. O(nn ) \sqrt{n})n))

  3. 当输入为5时,输出的第二行为()。

    A.20B.21C.22D.23

代码分析
  • solve1(n)通过筛法标记每个数的最小质因数及其最高幂次,再利用公式递推计算除数之和σ ( i ) \sigma(i)σ(i),最后求和。
  • solve2(n)直接计算∑ i = 1 n i × ⌊ n / i ⌋ \sum_{i=1}^n i \times \lfloor n/i \rfloori=1ni×n/i,该和式等价于∑ k = 1 n σ ( k ) \sum_{k=1}^n \sigma(k)k=1nσ(k)
  • 两函数计算结果相同,时间复杂度分别为O ( n log ⁡ log ⁡ n ) O(n \log \log n)O(nloglogn)O ( n ) O(n)O(n)
判断题答案
  1. B. 错误
    删去第15行(reverse(d.begin(), d.end());)后,di的幂次变为从小到大排列,会导致g[j]被错误地赋值为较小的幂次,进而使得后续计算的f[i](即除数之和)错误,输出改变。

  2. B. 错误
    solve1(n)solve2(n)均计算1 11n nn所有数的除数之和∑ k = 1 n σ ( k ) \sum_{k=1}^n \sigma(k)k=1nσ(k),因此两行输出相等。当输入为10时,第一行等于第二行。

  3. A. 正确
    同理,当输入为1000时,两行输出相等。

单选题答案
  1. D. O(nloglogn)
    solve1(n)的第一部分类似于筛法,仅处理≤ n \leq \sqrt{n}n的质数及其幂次,遍历倍数的总次数约为n ∑ p ≤ n 1 / p = O ( n log ⁡ log ⁡ n ) n \sum_{p \leq \sqrt{n}} 1/p = O(n \log \log n)npn1/p=O(nloglogn),其余部分为O ( n ) O(n)O(n),故总时间复杂度为O ( n log ⁡ log ⁡ n ) O(n \log \log n)O(nloglogn)

  2. B. O(n)
    solve2(n)通过单层循环计算,循环次数为n nn,每次操作O ( 1 ) O(1)O(1),故时间复杂度为O ( n ) O(n)O(n)

  3. B. 21
    当输入为5时,solve2(5)计算过程为:
    1 × ⌊ 5 / 1 ⌋ + 2 × ⌊ 5 / 2 ⌋ + 3 × ⌊ 5 / 3 ⌋ + 4 × ⌊ 5 / 4 ⌋ + 5 × ⌊ 5 / 5 ⌋ = 5 + 4 + 3 + 4 + 5 = 21 1 \times \lfloor 5/1 \rfloor + 2 \times \lfloor 5/2 \rfloor + 3 \times \lfloor 5/3 \rfloor + 4 \times \lfloor 5/4 \rfloor + 5 \times \lfloor 5/5 \rfloor = 5 + 4 + 3 + 4 + 5 = 211×5/1+2×5/2+3×5/3+4×5/4+5×5/5=5+4+3+4+5=21


专栏推荐:信奥赛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/8/21 0:29:41

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

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

作者头像 李华
网站建设 2026/8/23 23:07:44

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

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

作者头像 李华
网站建设 2026/8/24 7:47:38

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

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

作者头像 李华
网站建设 2026/8/23 19:48:59

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

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

作者头像 李华
网站建设 2026/8/24 3:34:45

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

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

作者头像 李华
网站建设 2026/8/23 20:30:04

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

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

作者头像 李华