对于所有 1\sim n 的排列 p,求满足对于任意 1\le i\le m 有 p_i>k 的方案数。
将其转化到棋盘上放置互不攻击的车。那么会发现限制相当于左上角 m\times k 的方形不能放置车。那不就是 P1350 吗?
练习题
P3182
容易发现其实就是最基础的错排问题。高精度即可。
P4071
显然钦定了 m 个位置之后就变成基础错排问题了,因此答案为 C_n^mD_{n-m}。
CF888D
枚举固定位置的点的个数即可。答案就是 \sum_{i=n-k}^n D_{n-i}C_n^i。
UVA 11481
前 m 个有 k 个在原位,则剩下的 n-k 个元素就是 m-k 个有限制元素和 n-m 个无限制元素,直接套上面的柿子可得答案为
C_m^k \sum_{i=0}^{n-m} C_{n-m}^i D_{n-k-i}
CF340E
设剩下 m 个需要填,有 k 个数满足未被确定且 a_k 被确定。那么这 k 个数就是没有限制的元素,剩下要填的 m-k 个元素有限制。于是用 无限制元素 一节的方法即可。
ABC172E
数列 a 显然有 A_m^n 种选法。接下来计算数列 b 的方案数。显然可以转化为填 1\sim m 中的 n 个且 b_i\not=i 的方案数 D'_n。考虑递推求出 D'。发现填到任意位时,总有 m-n 个无限制的元素(将一个无限制的元素填入后,原本应该在这一位填的数就变为了无限制元素)。所以在第 i 位填无限制元素的总方案数为 (n-m)D'_{i-1}。因此 D'_i=(n-m)D'_{i-1}+(n-1)(D'_{i-1}+D'_{i-2})。注意此时 D_1=n-m。
ABC214G
问题可以被转化为 r_i\not=i 且 r_i\not= p_i 的排列 r 的数量。连边 i\to p_i,则形成了若干个环。那么在一个大小为 s 的环内有 k 个不满足条件的点的方案数可以用 二重错排 一节中的方式计算,也即 C_{2s-k}^k+C_{2s-k-1}^{k-1}。然后可以合并到一整个序列中有 i 个不满足条件的点的方案数 f_i,于是该问题的答案为
\sum_{k=0}^n (-1)^k f_k(n-k)!
。
SP9097
设 s 为不同数的数量,f_{i,j} 为当前到第 i 种数,且有 j 个位置的 a_p=b_p 时的方案,cnt_i 为第 i 种数的数量。那么有