指定元素相对位置的排列计数
若干个不同元素排成一排,条件只约束其中**几个指定元素之间的相对位置**(谁在谁前、在谁的哪一侧、夹不夹在中间),求排法数。
题型说明
题面长这样: 个互不相同的对象排成一排,另加一句只涉及指定的 个对象彼此之间的位置关系——
- 排在 前面;
- 、 都在 的同一侧;
- 不夹在 、 之间;
- 甲、乙、丙三人从左到右身高递增。
关键在于:条件不点名具体位次,也不牵扯其余 个对象。 一旦题面出现「第一位不能是……」 「甲乙必须相邻」这类话,就不再是纯相对位置,得另配捆绑法或插空法。
三个入口
- 相对次序等分(最快): 个元素的 种次序把 个排列均分,数出合格次序数即可一步得数, 见只看几个元素的相对次序。
- 按关键元素的位置分类(最稳):让那个”分界”的元素(上面例子里的 )依次站到第 位, 每种位置下用排列数数一遍再相加。左右对称时只算一半再乘 。
- 补集:合格的情形分好几类而不合格的只有一类时,用总数减,见正难则反用补集。
这类题的关口
- 「同侧」不是「相邻」:同侧只要求都在左边或都在右边,中间隔多少个都行,两者的算法完全不同。
- 分类要不重不漏:按位置分类时, 站在中间几位会同时有”都在左”和”都在右”两支, 漏掉其中一支是这类题最常见的失分点,见分类计数重复或遗漏。
- 对称性只是省力,不是免检:用「左右对称,算一半乘 」之前,要确认条件本身左右对称 (「、 在 同侧」对称,「 在 左边」不对称)。
- 不要去排其余元素的细节:那 个元素永远贡献一个公因子 ,把它提出来能让式子短一大截。
学它之前先会
共 3 条前置、最深 3 层。
出现在以下题目中
共 2 道题考到本条。