计数技巧

计数技巧:

等价替代(映射):

构造一个映射,将每一种原问题的方案映射为新问题的一种方案,并使答案更容易计算。
例如捆绑法,插空法,隔板法等。

捆绑法: 也成整体法,即若要求若干物品相邻,可以将他们视作一个整体来计数。

插空法: 如果要求若干物品两两不相邻,可以先将其他物品放好,然后将这些物品插入空挡当中进行计数。

隔板法: 将不可区分物品分配问题、不定方程整数解问题转化为插板组合问题。

例: 把 \(n\) 个相同的苹果分给 \(k\) 个人,要求每人至少分到一个的方案数。(求 \(x_1+x_2+x_3+\cdots+x_k=n\) 的整数解,满足 \(x_i\geq 1\))
\(n\) 个苹果排成一排,从左到右一次插入 \(k-1\) 块板子,共有 \(n-1\) 个位置可以插入,所以答案为 \(C_{n-1}^{k-1}\)

 

改变计数目标:

如果直接按照题意来计数比较困难,可以尝试通过减法、容斥原理等方法转换成容易求的目标。

 

改变枚举顺序:

很多时候,计数题要做的基本上是:在某个范围内枚举元素,计算它们的和。直接按照题意来做显然只能拿到暴力分(x), 我们往往需要安排一个合适的顺序来计算。

例: 求 \(\sum_{i=1}^n\sum_{j=1}^n\max(i,j)\)

\[\sum_{i=1}^n\sum_{j=1}^n\max(i,j)=\sum_{k=1}^nk\times\sum_{i=1}^n\sum_{j=1}^n[\max(i,j)==k]\ \ \ \ \ \ \ \\ =\sum_{k=1}^nk\times(2k-1)\ \ \ \ \\ =\sum_{k=1}^n(2n+1)k-k^2\\ =\frac{4n^3+3n^2-n}{6}\ \ \ \ \ \]

posted @ 2024-07-02 19:26  programmingysx  阅读(3)  评论(0编辑  收藏  举报