2 条题解

  • 0
    @ 2026-6-19 14:25:50

    以下解析由 DeepSeek V4 Pro 基于参考答案生成。


    一、基础知识

    1. C

    • LAN(局域网)、MAN(城域网)、WAN(广域网)均为常见网络分类。
    • NAN 不属于此标准分类,故选 C。

    2. A

    • C++ 源代码常见后缀:.cpp、.cc、.cxx、.c++ 等。
    • .c 通常为 C 语言源文件后缀(虽大多数编译器兼容,但规范上不属于 C++ 专属后缀)。

    3. B

    • 信息学竞赛(CCF 系列)自 2021 年起指定使用 C++14 标准,2022 年延续此版本。

    4. C

    表达式:15 & 26 + ~8 << 2(无符号 8 位运算)

    • 运算符优先级:~ > + > << > &
    • ~8 按位取反(在 8 位下为 0b11110111 = 247)
    • 26 + 247 = 273,8 位截断为 273 % 256 = 17
    • 17 << 2 = 68(0b01000100)
    • 15 & 68 = 0b00001111 & 0b01000100 = 0b00000100 = 4

    选 C。

    5. C

    已知:

    (¬A∧B)∨C=true(\lnot A \land B) \lor C = \text{true} $$(B \land C) \oplus (B \lor C) \oplus \lnot A = \text{true}$$

    枚举所有 8 种真值组合,满足两式的为 (A,B,C)=(0,1,1)(A,B,C)=(0,1,1) 和 (1,0,1)(1,0,1),其中 true 的个数均为 2。

    6. A

    • 边权和 = ∑(点权×度数)\sum (\text{点权} \times \text{度数}),总度数为 2N−22N-2。
    • 要边权和最小,应让最小点权 TT 尽可能承担更多度数,其余 N−1N-1 个点作为叶子。
    • 则 TT 的度数为 N−1N-1,其余点度数为 11,总和为 T(N−1)+(S−T)=S+(N−2)TT(N-1)+(S-T)=S+(N-2)T。

    7. D

    • 33 个结点的有向图,无重边无自环,允许两结点间有双向边。
    • 共有 3×2=63 \times 2 = 6 条可能的有向边,均可存在。选 D。

    8. D

    • nn 个结点的无标号二叉树形态数即 卡特兰数 CnC_n。
    • C4=14C_4 = 14。

    9. A

    • 根为 44,其左子树:22(左 11,右 33);右子树:66(左 55,右 77)。
    • 中序遍历:左 → 根 → 右 → 1,2,3,4,5,6,71,2,3,4,5,6,7。

    10-12. 块状链表操作复杂度

    • 10. B:查询需先通过顺序表定位到组(可 O(1)O(1)),再在组内链表遍历,组长约 n\sqrt{n},故约访问 n\sqrt{n} 个元素。
    • 11. B:插入定位同查询,需要访问约 n\sqrt{n} 个元素找到位置,插入本身为 O(1)O(1)。
    • 12. C:每组冒泡排序共 O(n×(n)2)=O(nn)O(\sqrt{n} \times (\sqrt{n})^2) = O(n\sqrt{n});选择排序需要 O(n)O(n) 次选择,每次从 n\sqrt{n} 个串首比较,也是 O(nn)O(n\sqrt{n}),总复杂度 O(nn)O(n\sqrt{n})。

    13. B

    • memset 定义在头文件 <cstring>(或 C 风格 <string.h>)中。

    14. A

    f(25) = 25 * f(12)
    f(12) = 12 * f(6)
    f(6)  = 6 * f(3)
    f(3)  = 3 * f(1) = 3
    

    回溯:3×6=183 \times 6 = 18,18×12=21618 \times 12 = 216,216×25=5400216 \times 25 = 5400。

    15. D

    • 二分写法有误:当 l 与 r 相邻时 m = (l+r)>>1 恒等于 l,若 x > m 则 l = m 死循环。
    • x=7 时会死循环导致超时;x=1,3,5 均可正常退出。

    二、阅读程序

    (六)蜘蛛算经

    程序将输入的数字串按“乘 88 加下一位”处理,相当于将输入视为八进制数(但数字可以是 0∼90\sim9),转为十进制输出。

    • 16. T:x <<= 3 等价于 x *= 8(正数且不溢出时)。
    • 17. F:输入 "01" 和 "1" 输出相同,并非一定不同。
    • 18. F:输入最多 1010 个数字,最大值为 1010 个 99 的结果 1 380 525 2011\,380\,525\,201,未超出 int 范围(约 2.1×1092.1\times10^9)。
    • 19. D:
      A. "000" →0\to 0,输出 0。
      B. "778" →7×8+7=63,63×8+8=512\to 7\times8+7=63, 63\times8+8=512。
      C. "123" →1×8+2=10,10×8+3=83\to 1\times8+2=10, 10\times8+3=83。
      D. "111" →9×8+1=73\to 9\times8+1=73,正确。
    • 20. C:"777" →63×8+7=511\to 63\times8+7=511。
    • 21. D:1010 个 99 的结果为 $9\times(8^{10}-1)/7 \approx 1.38\times10^9 \approx 13.8$ 亿,最接近 1414 亿。

    (七)左手螺旋

    模拟在 01 矩阵中按“左手扶墙”规则行走,超过 10nm10nm 步未停则输出 -1。

    • 22. F:循环条件为 ans <= 10*n*m,跳出时 ans = 10*n*m + 1。
    • 23. T:将条件改为 ==0 后可走,在边界外可能持续走出数组导致越界。
    • 24. T:矩阵全 00 时,起点一定为 00,直接 report(0)。
    • 25. A:手推几步会发现路径进入死循环,最终超过步数上限输出 -1。
    • 26. A:全 11 矩阵中,起点 (1,1)(1,1)。若方向为 U,前方和左方均为界外(00),第一步即停下输出 1;其他方向均可前进。
    • 27. D:循环最多执行至 ans = 10nm+1,n,mn,m 最大 10001000,故约 10710^7 次。

    (八)幸福之约

    用 DFS 枚举连续质数的幂次,求不超过 range 且约数个数最大的数。

    • 28. T:删去第 66 行后 prime(1) 返回 true,但 set_pr 从 22 开始循环,不影响质数表。
    • 29. T:range=1,DFS 无法乘任何质数,最大约数个数 mv 保持为 1。
    • 30. T:改用 int 可能导致 cur 溢出变为负数,递归无法按预期终止,造成超时等。
    • 31. B:DFS 从 cur=1 开始,且必须从小到大连续取质数、每个至少取一次,故在 1∼101\sim10 间可能值为 1,2,4,6,81, 2, 4, 6, 8(共 55 个)。3,5,7,9,103,5,7,9,10 不含因子 22 或因缺少中间质数而无法产生。
    • 32. B:取指数均为 11 的路径 $2 \times 3 \times 5 \times 7 \times 11 \times 13 \times 17 \times 19 \times 23=223\,092\,870<10^9$,进入 dep=10 时乘 2929 溢出返回,故 dep 最大值为 1010。
    • 33. C:输入 10910^9 时经典最大约数个数为 13441344(对应 735 134 400735\,134\,400),程序能正确求出。

    三、补全程序

    (九)方格计数

    高精度乘法 n×mn \times m,采用压位存储(每位存 ZZ 进制)。

    • 34. B:数字最大长度 10100010^{1000},故数组大小需 >1000>1000,1<<10=1024=1024 足够且优化空间。a,b 长度 XX 选 1<<10。
    • 35. D:c 数组存乘积结果,长度为两数长度之和,1<<11=2048=2048 足够容纳约 20002000 位。
    • 36. D:压位进制 ZZ 选 1010 可简化 += c[i]/Z 和 %=Z 的进位处理,且 c[i] 单个数字最大 9×9×1000<1059\times9\times1000<10^5,无溢出风险。
    • 37. A:竖式乘法中,a[i] * b[j] 累加至 c[i+j]。
    • 38. C:进位处理时,c[i]/Z 进位到下一位 c[i+1]。

    (十)晚餐时间

    nn 只猪在数轴上按规则移动,每步同时朝猪少的一侧移动,两端猪跳下。程序利用间距 dis 优化模拟。

    • 39. C:dis[i] 为第 ii 只与第 i+1i+1 只的距离,即 a[i+1] - a[i]。
    • 40. D:当前仍在桥上的猪的数量 cnt = r - l + 1。
    • 41. B:若 cnt <= 1,只剩一只猪无法下桥,移动停止。
    • 42. A:中间猪的索引 mid = (l + r) >> 1(向下取整)。
    • 43. B:当桥上有偶数只猪时,中间两只同时向中间移动会消耗两倍距离,move 需翻倍,即 dis[mid] += move << 1。

    信息

    ID
    182
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    递交数
    38
    已通过
    5
    上传者