news 2026/4/3 5:47: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/4/2 16:34:11

揭秘!Agent智能体如何彻底颠覆人机协作的底层逻辑

揭秘&#xff01;Agent智能体如何彻底颠覆人机协作的底层逻辑 摘要&#xff1a;本文深度解析Agent智能体技术如何重构人机协作范式。通过对比传统自动化工具与智能体的差异&#xff0c;结合真实客服系统改造案例&#xff0c;揭秘其动态意图识别、工具链协同、记忆演进三大核心技…

作者头像 李华
网站建设 2026/3/21 6:43:36

Transformer中FFN的作用揭秘

好的&#xff0c;我们来通俗地解读一下 Transformer 模型中 FFN&#xff08;Feed-Forward Network&#xff09; 的作用。想象一下&#xff0c;Transformer 模型就像一个由很多层组成的“信息处理工厂”。每一层都有两个核心的“工人”&#xff1a;多头注意力机制&#xff08;Mu…

作者头像 李华
网站建设 2026/3/17 1:44:12

3DE CATIA基于知识工程的高效设计实战!

CATIA作为一款CAD/CAE/CAM软件在航空、船舶、汽车等行业已经有了较长时间的使用和迭代&#xff0c;依靠其强大的曲面建模及知识工程能力&#xff0c;在很多产品的研发环节中都扮演了较为重要的角色。本文旨在说明如何使用3DEXPERIENCE CATIA进行电子类产品的设计&#xff0c;主…

作者头像 李华
网站建设 2026/3/29 23:00:56

字符串 / 内存函数与大小端模式深度解析

在 C 语言底层编程中&#xff0c;字符串操作、内存拷贝是高频场景&#xff0c;而大小端模式则是处理多字节数据时绕不开的基础问题。本文将从函数原理、实现逻辑、场景适配角度&#xff0c;系统梳理strncpy/strncat/memcpy/memmove的核心特性&#xff0c;并结合大小端模式的实际…

作者头像 李华
网站建设 2026/4/3 4:05:41

数字化浪潮下,人工智能系统构建的全流程解析

在当下数字化如潮涌般的形势里&#xff0c;有这么一个情况&#xff0c;那就是众多企业和组织都将注意力聚焦在了人工智能系统的构建这件事情上。人工智能搭建是什么呢&#xff0c;简单来讲&#xff0c;它是一种情况&#xff0c;就是要从无到有或者依据现有的一些组件&#xff0…

作者头像 李华