例 1:一条链
四件物品 ,禁配为 。选两件有几种?
怎么看出来:
只须排除两端有边的点对。
解:
所有点对为 ,删去三条边,剩下 。
答案:
种。
专题地图 › 排列组合与概率
说清所数对象,解释分类、重数和上界的取到构造;不能只给一个总数。
互动实验:棋盘染色与多米诺覆盖
组合综合题的外形很多,核心常是把对象编码准确,再找能把条件压缩的结构。计数要避免重复与漏计,极值要同时解释界与构造,过程题则要保留足够的状态或不变量。不要先凭题目外观套公式,先把边、状态、指标集或分组的含义说清。
1. 先修与破题直觉:将每个对象写成唯一的状态或图顶点;双计数时先明确数的关联对,避免同一条边被端点各数一次后忘记校正。
2. 核心条件辨析:对称除二之前查固定点;不变量只给可达的必要条件,不能代替路径构造或完整匹配。
3. 典型误区对比:先读下方交换固定点与可达性两组红绿卡,再做自测;把“不可能”的阻碍和“可以”的构造分成两份论证。
4. 方法迁移带练:从 出发只许加 ,模三同余仍是必要条件,但 仍不可达;若允许加或减 ,同余才在此模型中变为充分条件。
5. 分级真题实战:先练“关联双计数与度数估计”,再练“代数编码与操作不变量”;挑战“名额匹配与增广”时,候选匹配必须逐一检查冲突与剩余名额。
计数开始前先问:位置是否有标号,交换两个对象算不算新方案,相同数值是否区分。例:从 取两个不同数,不计顺序有 对,其中相差 的有 对,所以不相邻的数对有 对。若改成有序数对,两个数的身份和顺序都要保留。
每个对象作顶点,把需要追踪的两两关系作边。例:三个二元属性给出 个对象,只差一项时连边,每点恰有 个邻点,边数为 。禁配选取对应独立集,允许配对对应匹配;两种图的边含义相反,必须先写明。
把 个对象放入 个容器,至少一个容器有 个对象。应用到数对时,容器可以是和值的余数,但两对相撞还不一定给四个不同元素;应先排除共用端点的可能。最优保证值由强制碰撞与不碰撞构造两边共同确定。
图的每条边有两个端点,所以 。若统计“一个人同时属于哪两个组”,则总数是 。例:四顶点路径的度数为 ,度数和 给出 条边;中间两个点各贡献一条两边路径,共 条。
交换两个位置通常把非固定对象两两配对。例: 有 个有序数对,其中 的固定点有 个;限制 后共有 对。若要求严格不等,则先删固定点,再除以 。多种坏事件同时出现时,还要用容斥核交集。
状态只需保留未来会用到的信息,但不能更少。例:用 种有标号颜色给四格长条染色,相邻不同,先格有 种、后每格有 种,共 种。若还限制每种颜色的次数,就必须把已用次数纳入状态,不能沿用只记末色的递推。
局部变化可以用加权和或模运算压缩。例:三个位置分别变化 ,权重为 时加权和变化 。这只证明该量守恒,不能反推同一加权和的两个配置必可互达。质因数指数编码乘法时,也要检查反向恢复及整性。
证明最大值,需先给所有合法对象共同满足的上界,再造一个达到上界的对象。例:五个排成一行的位置中不取相邻点,按前两对及末点分块,至多选 点;取第 点达到。若是“无论怎样都能找到”的最小规模,还须给前一规模的反例。
把不能同时选的两个对象连线,合法选择就变成不含连线两端的点集。
图的点代表对象,边代表冲突。不含任何相邻两点的点集叫独立集。只表示冲突,不表示先后顺序。
每条边恰好对应一条禁配条件,故选点与原选择一一对应。先处理边最多的点,常能把问题拆成很小的分支。
四件物品 ,禁配为 。选两件有几种?
怎么看出来:
只须排除两端有边的点对。
解:
所有点对为 ,删去三条边,剩下 。
答案:
种。
| 题目里看到 | 应该想到 |
|---|---|
| 条件反复规定哪些两对象能共存、相邻或配对,或者要求同色、异色关系。 | 把不能同时选的两个对象连线,合法选择就变成不含连线两端的点集。 |
| 四件物品 ,禁配为 。选两件有几种? | 只须排除两端有边的点对。 |
两两冲突, 与它们都不冲突。选两件有几种?
怎么看出来:
三角形内至多选一个点。
解:
合法点对必须含 ,另一个点可取 ,所以是 。
答案:
种。
同一批关联分别从两端计数,两种总数必须相等。
关联指一个对象与另一个对象满足指定关系,例如学生参加社团。图中一点连出的边数叫度数,每条边给两个端点各贡献一次。
学生一端数参加次数,社团一端数人数,数的都是同一批“学生—社团”对。图的度数总和因此等于边数的两倍。
人每人值日 次,每次恰好 人。共有几次值日?
怎么看出来:
数“人—值日”关联。
解:
按人数共 次关联,每次值日贡献 次,故值日 次。让前三人与后三人各值两次即可实现。
答案:
次。
| 题目里看到 | 应该想到 |
|---|---|
| 同一对象同时连着行和列、人和组、点和边,或一个局部量可以按多种索引累加。 | 同一批关联分别从两端计数,两种总数必须相等。 |
| 人每人值日 次,每次恰好 人。共有几次值日? | 数“人—值日”关联。 |
人每人恰与另外 人握手,每对至多一次。总共握手几次?
怎么看出来:
每次握手被两个人各数一次。
解:
度数和 ,握手次数 。五个人围成一圈各与左右邻居握手便可实现。
答案:
次。
把总量分到若干类;如果每类都低于目标,总量就会不够。
抽屉原理说:把多于 个对象放进 类,至少一类有 个。平均数是总量除以类数,最大一类不会低于平均数。
假定每类至多 个,则总数至多 ;超过它就产生矛盾。要证明“至少需要”多少,还应构造未达到目标的极端分配。
任取整数,至少取多少个才能保证有三个模 同余?
怎么看出来:
模 有四类。
解:
每类至多两个时共 个;取 个必有一类至少三个。取 时每类恰两个,所以 个不够。
答案:
个。
| 题目里看到 | 应该想到 |
|---|---|
| 出现任意划分、总能找到、至少一个,或总量已经接近每部分可能的极限。 | 把总量分到若干类;如果每类都低于目标,总量就会不够。 |
| 任取整数,至少取多少个才能保证有三个模 同余? | 模 有四类。 |
本书放进 个盒子,最满的盒子至少多少本?该界能取到吗?
怎么看出来:
最大数量至少是平均数向上取整。
解:
若每盒至多 本,总量至多 ,矛盾,故至少 本。分成 ,最满恰为 。
答案:
至少 本,能取到。
不要一个个列。先定下最受限制的部分,按它的取值分成互不重叠、没有遗漏的几类,每类单独数清楚,最后相加。
几类情况互不重叠、合起来是全部,总数就是各类相加。一件事分几步做,只有当后一步的选法个数不受前一步具体选了什么影响时,才能直接相乘。
用 组成数字不重复的三位数,先选末位 ,首位有 种;先选末位 ,首位不能是 ,也不能是 ,只有 种。首位的选法个数随末位变化,不能用一个数相乘,所以按末位分类。
优先定选择最少、又影响别的位置的部分:有条件的末位、首位不为 、和固定时的最大数、棋盘的第 1 行。定下它以后,其余部分的条件通常变简单。
分类时要说明为什么没有别的情况。例如 ,,那么 ,所以 。写出这样的不等式,范围就排尽了,不用靠感觉。
排列里有相同的数码时,先给相同的数码选位置。 排成一行:先选 的位置,有 种,其余放 ,共 种。
用数码 (全部用上)能组成多少个四位奇数?
怎么看出来:
末位决定奇偶,它最受限,而且末位不同时,剩下的数码不一样,所以按末位分类。
解:
末位只能是 或 ,不能是 。末位是 :前 位排 , 个不同数码有 种。末位是 :前 位排 ,先选 的位置,有 种。合计 。
答案:
个。
| 题目里看到 | 应该想到 |
|---|---|
| 首位不能是 、末位有条件 | 按受限的那一位分类 |
| 几个不同的数的和固定 | 按最大的数分类,用不等式定范围 |
| 直接列举太多,但少数几个位置决定其余 | 先定这几个位置,其余数量由它们决定 |
| 棋盘每行每列有个数要求 | 定第 1 行,按第 2 行和它的交叠分类(见进阶“按交叠分类”) |
| 问有多少种三角形、多少种图形 | 按最大边或形状分类(见进阶“几何对象”) |
| 这样的映射条件 | 按不动点或像分类(见进阶“映射的分类”) |
从 里选 个不同的数,它们的和是 。有多少种选法?
怎么看出来:
个数不计顺序,排成 。最大数 定了, 也定了。
解:
因为 ,所以 ,;又 。:,有 , 种。:,有 , 种。:,,有 , 种。:,,有 , 种。合计 。
答案:
种。
两部分有重合时,第 2 部分的数法常常取决于它和第 1 部分重合多少。每种重合的个数算一类。第 1 部分的具体位置有几种,最后再乘。这样做的前提是每种位置下的计数都相同,这要由对称性说明。
行 列的方格表,每行恰涂 个黑格,每列至多 个黑格。有多少种涂法?
怎么看出来:
第 3 行的选法取决于前 行在同一列重合多少,所以定第 1 行,按第 2 行和它重合的格数分类。
解:
第 1 行选 列,有 种,这里 是从 个里选 个的选法数。由对称性,每种选法后面的数法相同,不妨设选了第 列。第 2 行与它重合 格:第 2 行也选第 列, 种,这 列已满,第 3 行只能选第 列, 种,共 种。重合 格:第 2 行有 种,例如选第 列,第 列已满,第 3 行从其余 列选 列, 种,共 种。重合 格:第 2 行选第 列, 种,各列都只有 个黑格,第 3 行任选, 种。合计 ,总数 。
答案:
种。
三角形要定形状时,把三边排成 , 定了以后条件就是 。按全等算一种时, 这个次序已经避免了重复,不要再乘排列数。
三边都是正整数、周长是 的三角形,按全等算一种,有多少种?
怎么看出来:
排成 ,最大边 定了就容易了,先用不等式求它的范围。
解:
,三角形要求 ,所以 ,。 是最大边,,。:,,只有 。:,,有 。合计 种。
答案:
种:。
映射 表示给 的每个元素指定一个 中的像。 的 叫不动点。条件 说明:不是不动点的元素必定两两成对, 把一对元素互换。所以按不动点的个数分类。配对时不要重复计算: 和 是同一种配法。
,映射 满足对每个 都有 。这样的 有多少个?
怎么看出来:
不是不动点的元素两两成对,所以不动点的个数决定结构。
解:
若 ,则 ,所以 互换成一对。总共 个元素,成对的元素个数是偶数,所以不动点有 、 或 个。 个不动点: 种。 个不动点:选一对互换, 种。 个不动点:选不动点有 种,其余 个元素配成 对。固定其中一个元素,选它的搭档有 种,剩下 个自成一对,所以配法是 种,共 种。合计 。
答案:
个。
有和、整除这样的条件时,先定用哪些数字(分组),再排位置。每组的排列数相同就直接相乘,不同(比如含 或重复数码)就分别算。一开始就排位置,容易把同一组数字反复数。
从 里选 个不同的数字,组成四位数,要求各位数字之和是 。有多少个这样的四位数?
怎么看出来:
和的条件只和选了哪些数字有关,先分组,排列放到最后。选 个不如看没选的 个。
解:
个数字之和是 ,所以没选的 个之和是 ,只有 , 种。每种选法的 个数字互不相同,排成四位数有 种。总数 。
答案:
个。
只保留能决定下一步合法选择的信息,再按长度逐层更新。
状态是当前局面的必要记录;若两个局面在这个记录相同时,后续可选动作相同,就可以合并计数。状态的计数是到达它的方案数。
每个合法长串去掉末位都得到唯一短串,所以按最后一步把旧计数送入新状态,不会重复。状态不完整时这个理由就失效。
长度 的零一串不允许相邻两个 ,有多少个?
怎么看出来:
以末位是零或一作状态。
解:
记两类数为 ,则 。从 得 ,总数 。
答案:
个。
| 题目里看到 | 应该想到 |
|---|---|
| 选择按顺序推进,局部限制只依赖最近若干步、当前端点或已经使用的对象。 | 只保留能决定下一步合法选择的信息,再按长度逐层更新。 |
| 长度 的零一串不允许相邻两个 ,有多少个? | 以末位是零或一作状态。 |
长度 的零一串中, 的个数为偶数的有多少个?
怎么看出来:
只需记一的个数的奇偶。
解:
加零保奇偶,加一换奇偶。长度一两态各 个,随后每态变为两态之和,长度四每态 个。
答案:
个。
先找每次操作都不改变的量,用它排除不可能的目标。
操作前后始终相等的量叫不变量。只保持余数也算不变量,例如整数总和模 的余数,即奇偶性。
一次操作保持该量,则连续任意多次也保持。初态与目标量不同,目标必不可达;量相同只说明这一条障碍不存在。
四个灯全灭,每次翻转两个不同的灯,能否得到恰一盏亮?
怎么看出来:
亮灯数量的奇偶性不变。
解:
若所翻两灯原有 盏亮,亮灯总数变化 ,是偶数。初态为偶数,目标为奇数,所以不可达。
答案:
不能。
| 题目里看到 | 应该想到 |
|---|---|
| 条件含奇偶、乘法闭合、线性增量或局部加减操作,直接追踪整个配置困难。 | 先找每次操作都不改变的量,用它排除不可能的目标。 |
| 四个灯全灭,每次翻转两个不同的灯,能否得到恰一盏亮? | 亮灯数量的奇偶性不变。 |
三堆石子为 ,每次从非空堆搬一颗到另一堆。能否得到 ?能否得到 ?
怎么看出来:
搬移不改变总数。
解:
初始总数 ,第一目标总数 ,不可达。第二目标总数 ,且从第三堆搬一颗到第一堆就得到它。
答案:
第一种不能,第二种能。
一边列需求,另一边列名额;安排冲突时沿交替链重新分配。
二分图的两类点分别是人和岗位,边表示此人能做此岗。匹配是一组没有公共端点的边。增广路从未安排的人走到空岗位,中间交替经过未选边和已选边。
沿增广路把选与未选交换,原来安排的人仍有岗位,并多安排一个人。若一组人的全部可选岗位少于人数,则不可能人人有岗。
甲可做 ,乙只能做 。如何各安排一个岗位?
怎么看出来:
甲先占了唯一岗时,可以转去另一岗。
解:
若先安排甲做 ,乙无岗。沿乙——甲— 交换,得到乙做 、甲做 。
答案:
甲做 ,乙做 。
| 题目里看到 | 应该想到 |
|---|---|
| 每项任务要分给有限容量的承担者,或要把对象两两配齐且存在禁配关系。 | 一边列需求,另一边列名额;安排冲突时沿交替链重新分配。 |
| 甲可做 ,乙只能做 。如何各安排一个岗位? | 甲先占了唯一岗时,可以转去另一岗。 |
甲乙丙都只能做 ,丁可做 。四人能各有不同岗位吗?
怎么看出来:
总岗位够多不代表每组都够用。
解:
甲乙丙三人的全部可选岗位只有两个,不可能注入两个名额。丁的两个选项不能解决这组三人的缺额。
答案:
不能。
先从全集扣除坏情况,再利用真正的一一对应减少重复分类。
补集是全集中不符合条件的对象。容斥是在相加后减去被重复计算的交集。对称计数要有一个保持规则、可逆的交换。
两个坏条件的并集数为各自数之和减去共同满足两条件的数。角色交换把两类一一配对时,两类数才相等;固定不动的对象须单独处理。
用 写长度 的串,三种字母都出现的有多少个?
怎么看出来:
从全部串中扣除至少缺一种的串。
解:
共有 串。缺指定字母有 串,缺两种有 串,故所求为 。
答案:
个。
| 题目里看到 | 应该想到 |
|---|---|
| 直接数合法对象很绕,但坏事件简单,或对象可通过交换、反序、零一互换成对对应。 | 先从全集扣除坏情况,再利用真正的一一对应减少重复分类。 |
| 用 写长度 的串,三种字母都出现的有多少个? | 从全部串中扣除至少缺一种的串。 |
从 中有放回地选有序数对 ,满足 的有多少个?
怎么看出来:
交换两坐标,把大于和小于两类配对,先扣平局。
解:
共 对, 有 对。其余 对两两交换,大于类有 对。
答案:
对。
的有序对共九个,限制 后按交换对称除二即可。
对角线 的三对为交换固定点,不能成二元组;其余六对两两配对。因此所求为 。
按群作用除重需要检查轨道大小,固定点不是二元轨道。
从整数零出发每次只许加二,目标与零同为偶数,所以所有偶数都能到达。
奇偶不变量只排除了奇数。负偶数如 虽同余,却不能由非负次加二到达;此操作的可达集是非负偶数。
操作方向是额外限制,不变量相同不自动给出合法路径。
先想清楚,再确认判断。这些自测只帮助辨清概念,不计入真题做对率。
从易到难排列。圆点表示你在这台设备上的做题情况:绿色做对、黄色部分做对、红色没做出。