整理 NOI 初赛资料目录并标准化 CSP-J 模拟卷

- 将18套模拟卷分离为试题和答案解析,补齐并规范逐题解析
- 补充SVG图示,统一试题排版并导出打印PDF
- 重整初赛专题训练与复习资料目录,清理旧版源文件
This commit is contained in:
xiaolinquan committed 2026-11-06 17:50:51 +08:00
1 parent fe5c7ffd58
commit 0af92a68d9
216 files changed
+12743 -1272

No files matched your search

@@ -0,0 +1,334 @@
<center><font size="6"><b>CSP-J 初赛模拟卷(第 08 套)</b></font></center>
<center><font size="4"><b>参考答案与解析</b></font></center>
---
#### **一、单项选择题**
**答案速查**
| 题号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: |
| 答案 | D | B | D | A | A | A | A | B |
| 题号 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: |
| 答案 | D | C | B | B | D | C | A |
**逐题解析**
##### 第1题
**答案:** D
**解析:** 蓝牙、Wi-Fi 和 GPRS 均属于无线通信技术;本题中的以太网指常见的有线局域网技术。
##### 第2题
**答案:** B
**解析:** 8 位补码的最高位为符号位。该数表示的十进制值为 $-2^7+2^5+2^3+2^1+2^0=-128+32+8+2+1=-85$。
##### 第3题
**答案:** D
**解析:** 光盘、磁盘和固态硬盘均可保存数据;鼠标用于输入操作信息,不属于存储设备。
##### 第4题
**答案:** A
**解析:** 编译器将源程序翻译为目标代码,供计算机进一步链接或执行,本题对应将源程序翻译成机器指令代码。
##### 第5题
**答案:** A
**解析:** `s` 先被赋为 `a`,随后循环执行 `c` 次减一操作,因此最终为 `s=a-c`。
##### 第6题
**答案:** A
**解析:** 将元素两两分组,先比较每组大小,再分别在较大元素中找最大值、在较小元素中找最小值,最坏情况下共需 $\lceil3N/2\rceil-2$ 次比较。
##### 第7题
**答案:** A
**解析:** 三个数字各不相同时有 $3!=6$ 种。数字 `1` 出现两次时,另一位可选 `2` 或 `3`,共 $2\times3=6$ 种;数字 `2` 出现两次时同样有 $6$ 种。合计 $18$ 种。
##### 第8题
**答案:** B
**解析:** 先令新结点的 `next` 指向原栈顶 `hs`,再令 `hs` 指向新结点 `s`,即依次执行 `s->next=hs; hs=s;`。
##### 第9题
**答案:** D
**解析:** 有 $n$ 个顶点的树恰有 $n-1$ 条边。原图有 $m$ 条边,保留一棵生成树后需删除 $m-(n-1)=m-n+1$ 条边。
##### 第10题
**答案:** C
**解析:** 球和袋子都不可区分,等价于将 $8$ 分拆为至多 $5$ 个正整数。按非空袋子数 $1,2,3,4,5$ 分类,分别有 $1,4,5,5,3$ 种,共 $18$ 种。
##### 第11题
**答案:** B
**解析:** 高度为 $h$ 的完全二叉树满足 $2^{h-1}\le n\le2^h-1$。因为 $32\le61\le63$,所以高度为 $6$。
##### 第12题
**答案:** B
**解析:** $10000=2^4\times5^4$。在 $1$ 至 $10000$ 中,去掉能被 $2$ 或 $5$ 整除的数,并加回被重复扣除的 $10$ 的倍数,得到 $10000-5000-2000+1000=4000$ 个。
##### 第13题
**答案:** D
**解析:** 前两轮只将 `n` 增加到 $1$、$2$。第三轮 `n=3`,满足 `n%3==0`,执行 `k--` 后 `k=3`;循环条件 `n<k` 不再成立,输出 `3,3`。
##### 第14题
**答案:** C
**解析:** 操作系统负责管理 CPU、内存、外部设备等硬件资源,并为程序运行和用户操作提供统一的管理与服务。
##### 第15题
**答案:** A
**解析:** 为避免 Jacob 看到照片,不能直接分享给他,也不能分享给他的朋友,否则这些朋友的评论会使照片对他可见。图中 Dana、Michael、Eve 符合条件,对应 A。
#### **二、阅读程序**
##### 程序(1)
**程序分析:** 程序根据两球球心距离与半径关系,分别处理相离、包含及部分相交三种情形,计算两球交集体积。常数 `r=acos(0.5)=π/3`,最后保留四位小数。
**答案速查**
| 题号 | 16 | 17 | 18 | 19 | 20 | 21 |
| :---: | :---: | :---: | :---: | :---: | :---: | :---: |
| 答案 | √ | × | × | √ | D | C |
###### 第16题
**答案:** √(正确)
**解析:** 在题目给定坐标范围内,整数计算的距离平方可被 `double` 精确表示,后续计算数值不变,因此修改类型不影响结果。
###### 第17题
**答案:** ×(错误)
**解析:** 先除以 `sqrt(t)` 时会进行浮点除法;若先除以整数 $2$,分子可能先被整数截断,结果可能改变。
###### 第18题
**答案:** ×(错误)
**解析:** `sq` 的形参为 `int`,把浮点数 `x、y` 传入时会先截断小数,与直接计算 `x*x、y*y` 不同。
###### 第19题
**答案:** √(正确)
**解析:** 两球半径均为 $1$、球心距离为 $1$,交集体积为 $5π/12\approx1.3090$,与题述输出相同。
###### 第20题
**答案:** D
**解析:** 两球球心均为 `(1,1,1)`,半径为 $1$、$2$,交集就是半径为 $1$ 的球,体积为 $4π/3\approx4.1888$。
###### 第21题
**答案:** C
**解析:** 包含时取较小球体积,相离时输出零,部分相交时相加两个球冠体积,因此求的是两球体积的交集。
##### 程序(2)
**程序分析:** 当 $k>1$ 时,数组 `d` 模拟 $k$ 进制计数,`len` 为有效位数,`ans` 记录进位次数。因此 $\mathrm{ans}=\sum_{t\ge1}\lfloor n/k^t\rfloor$。当 $k=1$ 时应直接分析程序,此时每轮恰有一次进位,最终 `ans=n`。
**答案速查**
| 题号 | 22 | 23 | 24 | 25 | 26 | 27 |
| :---: | :---: | :---: | :---: | :---: | :---: | :---: |
| 答案 | × | × | √ | D | B | D |
###### 第22题
**答案:** ×(错误)
**解析:** 当 $k=1$ 时,第一轮使 `len` 变为 $2$,随后不再增加,因此 `len` 并不总等于 $n$。
###### 第23题
**答案:** ×(错误)
**解析:** 取 $n=1,k=2$,最终 `len=1`,并不小于 $n$,即可构成反例。
###### 第24题
**答案:** √(正确)
**解析:** `len` 是 $n$ 的 $k$ 进制位数,满足 $k^{\mathrm{len}-1}\le n<k^{\mathrm{len}}$,因此该不等式成立。
###### 第25题
**答案:** D
**解析:** $k=1$ 时每次外层循环使 `ans` 加一,执行 $n$ 次后结果为 $n=10^{15}$。
###### 第26题
**答案:** B
**解析:** 进位总数为 $3^{29}+3^{28}+\cdots+1=(3^{30}-1)/2$。
###### 第27题
**答案:** D
**解析:** 按公式依次累加 $\lfloor n/10\rfloor、\lfloor n/10^2\rfloor$ 等,得到 $11112222444453$,对应 D。
##### 程序(3)
**程序分析:** 程序通过线性筛求约数函数。`f[x]` 是正约数个数,`g[x]` 是正约数之和,`c`、`d` 辅助维护最小质因子的幂次及其余部分。
**答案速查**
| 题号 | 28 | 29 | 30 | 31 | 32 | 33 |
| :---: | :---: | :---: | :---: | :---: | :---: | :---: |
| 答案 | √ | × | × | A | C | C |
###### 第28题
**答案:** √(正确)
**解析:** `f[1]=g[1]=1` 只为输入 $1$ 的结果提供初值;大于 $1$ 的项由质数分支或递推独立得到,因此其他输入不受影响。
###### 第29题
**答案:** ×(错误)
**解析:** `c[i*k]` 等于 `i` 中相应质因子指数加一,恰是约数个数乘积公式中的一个因子,因此该除法能够整除。
###### 第30题
**答案:** ×(错误)
**解析:** 约数和也不单调,例如 `g[6]=12`,而 `g[7]=8`,由 $6$ 到 $7$ 反而减小。
###### 第31题
**答案:** A
**解析:** 每个合数只由其最小质因子筛到一次,所有筛选与转移的总时间为 $O(n)$。
###### 第32题
**答案:** C
**解析:** 正约数恰有两个的数正是质数,$1$ 至 $100$ 中共有 $25$ 个质数。
###### 第33题
**答案:** C
**解析:** $1000=2^3\times5^3$,约数个数为 $(3+1)^2=16$,约数和为 $(1+2+4+8)(1+5+25+125)=2340$。
#### **三、完善程序**
##### 程序(1)
**程序分析:** 将排列值映射到其原位置,按原位置建立双向链表,再按数值从小到大删除相应结点。删除某位置时,尚在其右边的最近结点就是该位置右侧第一个更大的元素。
**答案速查**
| 题号 | 答案 |
| :---: | :--- |
| 34 | `a[x] = i` |
| 35 | `i+1` |
| 36 | `R[a[i]]` |
| 37 | `a[i]` |
| 38 | `R[i]` |
###### 第34题
**答案:** `a[x] = i`
**解析:** 读到位置 `i` 的值为 `x`,应记录值 `x` 所在的位置,即 `a[x]=i`。
###### 第35题
**答案:** `i+1`
**解析:** 初始按位置顺序相连,位置 `i` 的右邻为 `i+1`,最后一个结点的右邻为哨兵 `n+1`。
###### 第36题
**答案:** `R[a[i]]`
**解析:** 删除 `a[i]` 时,其右邻的左指针应越过该结点,故左侧下标为 `R[a[i]]`。
###### 第37题
**答案:** `a[i]`
**解析:** 其左邻的右指针也应越过当前结点,接到 `R[a[i]]`,所填下标为 `a[i]`。
###### 第38题
**答案:** `R[i]`
**解析:** `R[i]` 已保留位置 `i` 右边第一个更大元素的位置;不存在时为哨兵 `n+1`。
##### 程序(2)
**程序分析:** 程序从后向前枚举保留的后缀,维护后缀总分与最低分,删除最低分后计算平均分,记录达到最大平均分的前缀删除长度。
**答案速查**
| 题号 | 39 | 40 | 41 | 42 | 43 |
| :---: | :---: | :---: | :---: | :---: | :---: |
| 答案 | C | B | D | C | B |
###### 第39题
**答案:** C(`sum=s[n]`)
**解析:** 开始枚举前,后缀只有最后一项,应令 `sum=s[n]`。
###### 第40题
**答案:** B(`sum+=s[i]`)
**解析:** 将第 `i` 项纳入当前后缀后,需要执行 `sum+=s[i]`。
###### 第41题
**答案:** D(`(double)(sum-minScore)/(n-i)`)
**解析:** 后缀含 $n-i+1$ 项,去掉最低分后剩 $n-i$ 项,平均分为 `(double)(sum-minScore)/(n-i)`。
###### 第42题
**答案:** C(`cnt=1;k[cnt]=i-1;`)
**解析:** 发现更优平均分时,应清空此前候选,把当前删除的前缀长度 `i-1` 作为首个结果保存。
###### 第43题
**答案:** B(`k[++cnt]=i-1;`)
**解析:** 平均分相同时追加当前答案,执行 `k[++cnt]=i-1`,保留所有达到最优值的删除长度。