CF660E Different Subsets For All Tuples
题意
给定一个长度为 \(n\) 的序列。
每个数字的范围为 \([1, m]\)。
求一共 \(m ^ n\) 种数列,每个数列种本质不同的子序列个数之和。
Sol
考虑用一种比较好的方式表示答案。
枚举本质不同的子序列长度,枚举中间跳过的数的个数。
\[m ^ n + \sum_{i = 1} ^ n \sum_{j = 0} ^ {n - i} (m - 1) ^ j m ^ {n - j} \times C_{i + j - 1} ^ {i - 1}
\]
注意到 \((m - 1) ^ j m ^ {n - j}\) 与 \(i\) 无关,提出来。
\[m ^ n + \sum_{j = 0} ^ n (m - 1) ^ j m ^ {n - j} \sum_{i = 1} ^ {n - j} C_{i + j - 1} ^ {i - 1}
\]
\[m ^ n + \sum_{j = 0} ^ n (m - 1) ^ j m ^ {n - j} \sum_{i = 1} ^ {n - j} C_{i + j - 1} ^ j
\]
欸后面这个东西怎么列都相同啊。
求杨辉三角某一列的值,等于该列右下角的数。
\[m ^ n + \sum_{j = 0} ^ n (m - 1) ^ j m ^ {n - j} \times C_{n} ^ {j + 1}
\]
把 \(j\) 都变成 \(j + 1\)。
\[m ^ n + \frac{m - 1}{m} \sum_{j + 1 = 1} ^ n C_{n} ^ {j + 1} \times (m - 1) ^ {j + 1} m ^ {n - (j + 1)}
\]
\[m ^ n + \frac{m - 1}{m} \sum_{i = 1} ^ n C_{n} ^ i \times (m - 1) ^ i m ^ {n - i}
\]
后面这一坨不就是二项式定理吗,单独把 \(i = 0\) 拎出来。
\[m ^ n + \frac{m - 1}{m}((\sum_{i = 0} ^ n C_{n} ^ i \times(m - 1) ^ i m ^ {n - i}) - m ^ n)
\]
\[m ^ n + \frac{m - 1}{m}((2m - 1) ^ n - m ^ n)
\]
时间复杂度:\(O(log_n)\)。