CSP 模拟 · CSP 2020 第一轮(初赛)模拟 第 11 题

选择题 · 答案 D

← 整套速查表 CSP 模拟 全部真题

题目

A 班有 $5$ 名风纪委员,B 班有 $4$ 名风纪委员,C 班有 $3$ 名风纪委员。现在需要这些同学中选取 $6$ 名风纪委员巡逻,如果只关注各班派出的风纪委员人数,有几种不同的方案?

答案:D

解题思维

这题本质是整数拆分:把6拆成三个数,分别对应A班、B班、C班,且每个数不能超过各班人数上限。先想哪些组合能凑出6,再检查是否越界,最后数一数有多少种。

常见错误

最容易掉进两个坑:一是只盯着总数6,忘了各班人数上限,比如把A班拆成6人(实际只有5人),或者B班拆成6人(实际只有4人),C班拆成6人(实际只有3人);二是把组合当成排列,比如认为(A5,B1,C0)和(A1,B5,C0)是两种方案,其实题目只关心各班人数,顺序无关,这样会多算一倍。

详细解析(节选)

这题考查的是简单的整数拆分与约束检查,属于组合数学基础中的“有上限的组合拆分”问题。命题人喜欢用这种看似简单、实则容易因忽略上限或混淆排列组合而选错的小题,挖坑点通常就在“人数上限”和“只看各班人数”这两个条件上。拿到题先别急着列公式,脑子里过一遍:6要拆成三个数 a+b+c=6,其中 a∈[0,5],b∈[0,4],c∈[0,3]。所有非负整数解里,只有当某个班被要求出6人时才越界,所以 a 不能是6,b 不能是5或6,c 不能是4或5或6。于是我们只需要枚举所有满足这三个上限的解,数个数即可。

具体怎么枚举?可以按 A 班人数从小到大试:

把上面加总:1+2+3+4+3+2 = 15?等等,这里有个细节:题目问的是“只关注各班派出的风纪委员人数”,也就是说 (A,B,C) 和 (A,B,C) 是同一个方案,我们刚才枚举的就是有序三元组,每个三元组唯一对应一个方案。再核对一遍上限:A 最大 5,B 最大 4,C 最大 3。上面枚举里有没有违反 B≤4 或 C≤3 的?没有,所有 B 都≤4,C 都≤3。那总数确实是 15 种吗?再看原题答案给的是 D 18,说明我漏了某些情况。

重新检查 A=0 的情况:剩6,B 最大 4,C 最大 3。C 可以取 3,则 B=3;C 能不能取 2?那 B=4,(0,4,2) 合法;C 能不能取 1?B=5 不行;C=0?B=6 不行。所以 A=0 时其实有 (0,3,3) 和 (0,4,2) 两种,我刚才只算了1种,漏了1种。 A=1 时剩5:C 可取 3→B=2;C 可取 2→B=3;C 可取 1→B=4;C=0→B=5 不行。所以有 (1,2,3)、(1,3,2)、(1,4,1) 三种,我刚才只算了2种,漏了1种。 A=2 时剩4:C 可取 3→B=1;C=2→B=2;C=1→B=3;C=0→B=4。四种,没错。 A=3 时剩3:C 可取 3→B=0;C=2→B=1;C=1→B=2;C=0→B=3。四种,没错。 A=4 时剩2:C 可取 2→B=0;C=1→B=1;C=0→B=2。三种,没错。 A=5 时剩1:C 可取 1→B=0;C=0→B=1。两种,没错。

现在重新加总:A=0 有 2 种,A=1 有 3 种,A=2 有 4 种,A=3 有 4 种,A=4 有 3 种,A=5 有 2 种。2+3+4+4+3+2 = 18。正好对应选项 D。

易错点总结:一是忘记 B 或 C 的上限,把 (0,5,1) 或 (0,6,0) 这种非法组合也算进去;二是枚举时漏掉某些 C 的取值,比如 A=0 时 C=2 对应的 (0,4,2);三是把有序三元组当成无序组合,导致重复或遗漏。这道题在 CSP 模拟中属于基础计算题,考频中等,每年必有一两道整数拆分或枚举类小题。未来趋势看,命题人可能会继续用这种“有限制条件的拆分”来考,或者换成更复杂的二维拆分,但核心思路不变:先定上限,再枚举,最后检查合法性。

在 OI伴学 里做这道题
登录后可计时作答、查看完整六段式解析,并按你的错题自动生成同类练习。
去刷题先做一次 AI 学情诊断