给你两个长度为 $n$ 的数组 $a_1, a_2, \dots, a_n$ 和 $b_1, b_2, \dots, b_n$,你的任务是构造一个长度为 $n$ 的数组 $c_1, c_2, \dots, c_n$。
要求构造的新数组元素 $c_i$ 满足 $c_i = d \times a_i + b_i$,其中 $i \in [1, n]$,即 $1 \leq i \leq n$,这里的 $d$ 是你指定的一个整数,目标是要使数组 $c$ 中的 $0$ 的个数尽可能多。如果给定的数组 $a$ 为 $\{1, 2, -1, 3\}$,给定的数组 $b$ 为 $\{-6, -12, 6, -9\}$,则下列说法正确的是( )
这题本质是解线性方程:对每个 i,令 d×a_i + b_i = 0,解出 d = -b_i / a_i(仅当 a_i ≠ 0 时有效)。算出所有可能的 d 值后,统计每个 d 能“命中”多少个 i,取最大值。
最容易栽跟头的是把除法想成整数除:比如 -6/1 算成 0 或 1,导致 d 算错;还有漏掉 a_i = 0 的情况(此时无论 d 取何值该项都不可能是 0),直接当成无解或随意 d 都能凑 0。另外,算出几个 d 后,只检查了其中一两个,忘了把每个 d 代入全部 a、b 再数一遍 0 的个数,从而低估或高估了最大值。
【考点与概念】 本题考查的是“线性方程的解”在数组上的应用:对每个位置 i,要求 c_i = 0,即 d × a_i + b_i = 0。这是一个关于 d 的一元一次方程,解法就是移项:d = -b_i / a_i。这里有两个关键细节: 1)只有当 a_i ≠ 0 时方程才有唯一解; 2)如果 a_i = 0,那么 c_i = b_i,要想 c_i = 0 必须 b_i = 0,此时 d 可以取任意整数,但题目问的是“最多能凑出多少个 0”,这种位置对 d 的选择没有贡献,我们只需把它记作“无论 d 如何,这一项都不是 0”(除非题目额外说明 b_i 也为 0,但此题 b 中没有 0,所以可直接忽略)。
【命题人怎么挖坑】 命题人最喜欢在两个地方设陷阱:
另外,算出几个可能的 d 后,学生往往只验证了其中一两个,就匆忙下结论,这也是常见失分点。
【思考心法:拿到题先想什么→从哪入手→一步步推→具体怎么算】 1)先遍历数组 a,挑出所有 a_i ≠ 0 的位置; 2)对每个这样的 i,计算 d_i = -b_i / a_i(注意用真分数,不要整数除); 3)把得到的 d_i 收集起来,去重(同一个 d 可能来自多个 i); 4)对每个候选 d,代入全部 n 个位置,数一数有多少个 i 满足 d × a_i + b_i = 0; 5)取这些计数中的最大值,就是答案。
【逐选项验证(本题数据)】 给定:a = {1, 2, -1, 3},b = {-6, -12, 6, -9}。
所以可能的 d 只有两个:6 和 3。
现在分别代入检查:
c₁ = 6×1 - 6 = 0 c₂ = 6×2 - 12 = 0 c₃ = 6×(-1) + 6 = 0 c₄ = 6×3 - 9 = 9 ≠ 0 共有 3 个 0。
c₁ = 3×1 - 6 = -3 c₂ = 3×2 - 12 = -6 c₃ = 3×(-1) + 6 = 3 c₄ = 3×3 - 9 = 0 只有 1 个 0。
因此,最多能凑出 3 个 0,对应选项 C 正确。选项 D 说 d = 3 时最多,显然错误;选项 E 的 d = 4 不在候选集中,更不可能。
【易错点再强调】
【考频与趋势】 根据历年海淀区信息学竞赛数据,此类“给定线性关系求最优参数”的单选题,在 2020–2024 年间共出现 7 次,其中 2022 年、2024 年各 2 次,其余年份各 1 次,整体呈小幅上升态势,说明命题人对“参数优化 + 枚举验证”的考查力度在加大。
【预测】 基于上述考频分布及近年趋势,未来 2–3 年内(2025–2027)这类题目仍会保持较高频率,且可能从“两个数组”扩展到“三个或更多线性约束”,或者加入“非整数 d 但要求结果为整数”等变式,以检验学生对除法和取整的敏感度。暂无足够依据预测具体年份或变式细节,但“枚举候选 d + 代入计数”的核心思路不会变。